设计模式前篇——对象关系及UML类图符号
1、综述类之间的关系:
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition)等。
2.关系简述:
依赖:一个类A中的某个方法参数为另一个类B,则认为A 依赖B
泛化:类的继承关系 , A extends B
实现:实现类和接口关系,A implements B
关联:一个类作为另一个类的属性而存在 A: - b:B ( 表示private B b;)
单向关联:
双向关联:两个类互为对方的属性
自关联:一个类的属性为其自身,比如常见的 单例模式的 单例属性,比如 链表数据结构
多重关联:一个类中包含另一个类的集合属性
组合:关联关系的一种,强关联关系,即拥有关系,不能单独存在,比如 人和头颈躯干肢体的关系,创建人的同时,必须同时创建 头颈躯干和四肢,生命周期 同生共死
聚合:关联关系的一种,弱关联关系,即包含关系,部分可单独存在, 比如汽车和 引擎的关系,引擎engine 实例可以在其他地方被new出来,作为汽车的构造器或者方法参数
多重关联关系:
表示方式
|
多重性说明
|
---|---|
1..1
|
表示另一个类的一个对象只与该类的一个对象有关系 |
0..*
|
表示另一个类的一个对象与该类的零个或多个对象有关系 |
1..*
|
表示另一个类的一个对象与该类的一个或多个对象有关系 |
0..1
|
表示另一个类的一个对象没有或只与该类的一个对象有关系 |
m..n
|
表示另一个类的一个对象与该类最少m,最多n个对象有关系 (m≤n) |
例如:一个界面(Form)可以拥有零个或多个按钮(Button),但是一个按钮只能属于一个界面,因此,一个Form类的对象可以与零个或多个Button类的对象相关联,但一个Button类的对象只能与一个Form类的对象关联,如图所示:
聚合关系示例:
组合关系示例:
3.UML类图综合关系
参考:
UML边看边记 之 类与类之间的关系
UML类图符号以及各种关系
《大话设计模式》