1. 说明
- 1.UML中有4种关系:依赖、关联、泛化和实现
- 2.这4种关系是 UML,模型中可以包含的基本关系事物。它们也有变体,例如,依赖的变体有精化、跟踪、包含和延伸
- 3.依赖关系最弱
2. 依赖
- 1.依赖(Dependency)。
- 2.依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。
- 3.在图形上,把一个依赖画成一条可能有方向的虚线。
- 4.图示
- 5.例如书评类依赖于书类,书评需要知道是哪本具体的书。
3. 关联
- 1.关联(Association)。
- 2.关联是一种结构关系,它描述了一组链,链是对象之间的连接。
- 3.聚集(Aggregation)是一种特殊类型的关联,它描述了整体和部分间的结构关系。
- 4.关联的图形化
- 5.聚集的图形化
- 6.在关联上可以标注重复度(Multiplicity)和角色(Role)
- 7.关联关系可以是一对一、一对多(或多对一)、多对多等。例如图书馆类和书籍类。每个图书馆有多本书,而每本书只属于一个图书馆。
4. 泛化
- 1.泛化(Generalization)。也是继承,关系最强。
- 2.泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。
- 3.用这种方法,子元素共享了父元素的结构和行为。在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素
- 4.泛化关系与概化关系在本质上是相同的。
- 5.用来描述一种类与类之间的继承或包含关系,即一个类(称为父类或超类)是另一个或多个类(称为子类或派生类)的概括或一般化形式。
- 6.泛化关系(Generalization)也称为“is-a-kind-of”关系,它用于描述父类与子类之间的关系。在面向对象编程中,这种关系通常通过继承机制来实现,子类会继承父类的属性和方法,并可能添加额外的属性或方法。
- 7.概化关系,虽然这个术语在一些非技术或特定语境下可能不常见,但其基本含义与泛化关系是一致的,都是指从一个更一般、更抽象的概念(父类)派生出更具体、更特殊的概念(子类)的过程。
- 8.图示
5. 实现
- 1.实现(Realization)。
- 2.实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。
- 3.在两种情况下会使用实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。
- 4.在图形上,把一个实现关系画成一条带有空心箭头的虚线。
- 5.图示
6. 例题
6.1 例题1
- 1.题目
1.采用面向对象方法进行系统开发时,以下与新冠病毒有关的对象中,存在“一般-特殊“关系的是(A)。
A.确诊病人和治愈病人
B.确诊病人和疑似病人
C.医生和病人
D.发热病人和确诊病人
- 2.分析
1.“确诊病人"与“治愈病人”(“治愈病人”是一种特殊的“确诊病人”)存在一般-特殊的关系。
2.“确诊病人"不一定是“疑似病人"并且“疑似病人”不一定成为“确诊病人”,不满足一般-特殊的关系。
3.“医生”不一定是“病人”并且“病人”不一定是“医生”,不满足一般-特殊的关系。
4.“发热病人"不一定是“确诊病人”并且“确诊病人”也不一定是“发热病人”,不满足一般-特殊的关系。
6.2 例题2
- 1.题目
1.在面向对象系统中,用(B)关系表示一个较大的“整体”"类包含一个或多个较小的“部分”类。
A.泛化
B.聚合
C.概化
D.合成
- 2.分析
1.聚合关系表示一个较大的"整体"类包含一个或多个较小的"部分"类。
2.合成关系则表示关系中“整体”负责其"部分”的创建和销毁,如果“整体”不存在了,"部分”也将不存在。