看一个软件的设计主要看两个类:类图和时序图。类图确定了软件数据模型的静态关系,时序图则是数据模型的动态关系。类图反映了软件的数据模型,应设计出各类的属性和方法;时序图反映了类图中各类间的关系。
类之间的关系有继承(泛化)、关联、聚合、依赖和组合。
继承:子类继承父类的功能,并增加了自己的新功能。
关联:一个类作为另一个类方法的参数,如:
class A{...}
class B{ ...}
A::Function1(B &b) //或A::Function1(B b) //或A::Function1(B *b)
聚合:整体与部分的关系。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。
依赖:是一种使用的关系,即一个类的实现需要另一个类的协助。
组合:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
参考文章:https://www.cnblogs.com/hoojo/p/uml_design.html
虚线箭头指向依赖;
实线箭头指向关联;
虚线三角指向接口;
实线三角指向父类;
空心菱形能分离而独立存在,是聚合;
实心菱形精密关联不可分,是组合;