UML Class Diagram

关联Association§
B knows a A.
关联描述两个类之间行为的二元关系。
类B对象包含类A对象的指针或引用。
依赖Dependency§
B uses a A.
依赖描述一个类的实例用作另一个类的方法的参数。
类B的方法使用类A对象作为参数或局部变量。
组合Composition§
B owns a A.
A is part of B.
组合是一种较强的包含关系。
强生命周期依赖。被包含对象的生命周期依赖于包含对象。
聚合Aggregation§
B has a A.
聚合是一种较弱的包含关系。
无强生命周期依赖。被聚合对象和聚合对象有着各自的生命周期。
辨析:与关联比较,关联并无包含的含义。
继承Inheritance/泛化Generalization§
B is a A.
一个类派生自另一个类。
实现Realization§
B realizes A.
一个类实现了一个/多个接口。
比较§
强弱程度:
- 关联 > 依赖
- 组合 > 聚合
其它符号§
类成员可见性§
- public: "+"
- private: "-"
- protected: "#"
成员类型§
- static: underlined
- pure virtual: italics
数量关系§
- 无实例或一个实例:"0..1"
- 一个实例:"1"
- 0个或多个实例:"0..* or *"
- 1个或多个实例(至少1个):"1..*"
Reference§
UML Class Diagram Explained With C++ samples | CPP Code Tips (wordpress.com)