1.依赖关系
(1)A 类中用到了B 类对象(或可描述为:A 类用到了B 类中定义的方法尤为常见);
(2)建议单向依赖,尽量避免双向依赖,防止耦合性过大;
(1)注意画图方式,虚线箭头。
由下图(摘自《Java面向对象编程》,作者:孙卫琴)描述可知:依赖关系中,B类对象不是A类的一个成员属性。
2.关联关系
(1)一个类知道另一个类的属性和方法,常见的实现方式是,B类对象是A类的成员属性;(逻辑上有需要知道的另一个类的属性和方法的需求和自然逻辑性)
(2)可以是单向关联,也可以是双向关联;
(3)注意画图方式。
注:关联可能偏向于类的课访问性
注:关联关系,掌握的不好,
3.聚合关系
(1)进化版关联关系,整体与部分的关系;
(2)注意画图方式。
可知,关联关系是平级类之间的关系,聚合关系是不平级类之间额关系。
4.组合关系
(1)关联关系的一种;
(2)一个类是另一个类的”附庸“,二者不可分。
从下图(摘自《Java面向对象编程》,作者:孙卫琴)描述可知:组合关系中,【代表部分的对象】需要依附于【代表整体的对象】,且【代表整体的对象】可以把【代表部分的对象】的管理权移交给另一个【代表整体的对象】;
【代表整体的对象】负责将【代表部分的对象】湮灭。
注:(1)这四种关系的逻辑应用场景,需要在实际业务中逐渐加深理解;
(2)通过UML 工具,可以方便梳理程序类的逻辑关系,一个辅助工具。