文章目录
一、依赖关系(Dependency):
- 相对独立的两个对象,满足下列要求之一:
- 一个对象构造了另一个对象的实例
- 一个对象使用了另一个对象(作为方法中的参数、局部变量等)
则为依赖关系,这种关系是偶然的,临时的。
举例:
机器生产零件,人借用船过河
UML表示:
虚线箭头
二、关联关系(Association):
相对独立的对象,一个对象的实例与另一个对象的一些特定实例存在固定的对应关系(一个对象拥有另一个对象的引用)
举例:
师傅和徒弟(1:N),学生和课程(N:N)
UML表示:
实线箭头
三、聚合关系(Aggregation):
聚合关系为关联关系的特例,一个对象是另一个对象的组成部分时,两个对象为聚合关系
聚合关系中的两个对象是整体与部分的关系,整体与部分是可分离的。
举例:
汽车和引擎,计算机和主板
聚合与关联的区别:
关联关系的两个类是处于相同的层次,聚合关系的两个类一个作为整体,一个作为部分
UML表示方法:
尾部为空心菱形的实线箭头(也可以没箭头),由整体指向部分
四、组合关系(Composition):
组合关系为关联关系的特例,体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
举例:
人和大脑,窗口和标题栏、菜单栏
UML表示方法:
尾部为实心菱形的实现箭头(也可以没箭头),整体指向部分
五、泛化关系(Generalization):
从一般到具体
在一般描述的基础上对继承的类进行扩展
代码层面,用继承实现(继承一个实体类,不是接口)
例:
Ainmal类和Tiger类,
UML表示法:空心三角形箭头的实线,由子类指向父类
六、实现关系(Realization):
类和接口之间的关系,表示类是接口所有特征和行为的实现。
泛化与实现的区别:
泛化和实现的区别就在于子类是否继承了父类的实现,如有继承则关系为泛化,反之为实现。
UML表示:
空心三角箭头的虚线,实现类指向接口。