UML类图关系整理

2013 年 10 月 1 日

UML关系图一览

Association 关联

  • 双向关联: 双方都知道对方的存在, 可以调用对方的public属性和方法.
  • 单向关联: A知道B, 可以调用B的public属性和方法, 但是没有生命期的依赖.
  • 自身关联: 自己引用自己.

Extends/Implementation 继承/实现

没有叫做泛化, 是因为一直觉得这个词太学术了…… 个人觉得这两个在C++中没有太大的区别, 如果是继承自纯虚基类, 也许用implementation更好一些.

Aggregation/Composition 聚合/组合

简单的来说: A 和 a 有 整体-部分 关系时, 如果 A 负责 a 的生命周期, 则叫组合; 如果 A 不管 a 的生命周期, 则叫聚合.

Dependency 依赖

A 需要用到 B 的时候, A 就依赖于 B, 最常见的例子是 A 的某个函数参数是 B 的对象. 应该避免相互依赖.

参考文档