类图格式
基础要素
- 类名
- 属性(java叫字段)
- 操作(java叫方法)
基本图示
示例
接口(机动车为例)
抽象类(汽车为例)
说明:
抽象类:类名斜体
抽象方法:方法名为斜体
普通类(奔驰为例子)
可见性说明
符号 | 说明 |
---|---|
- | private |
+ | public |
# | protected |
~ | 包权限 |
其他说明
类方法和类说明,加下划线
类与类之间的关系
泛化关系(generalization)
(is-a):指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能。
关系图
示例(Benz和Bmw继承Car)
实现关系(realize)
指的是一个class类实现interface接口(可以是多个)的功能。
关系图
示例(Car 实现 MotorVehicle 接口)
关联关系(Association)
描述不同类的对象之间的结构关系(静态关系、运行状态无关、强关联)。
关系图
- 不强调方向(默认):类A与类B都知道相互关联关系
- 强调方向:类A知道与类B关联,但是类B不知道
示例1(Benz 车和 Benz 品牌的关系,Benz车可以获取Benz品牌,Benz品牌可以发布Benz车)
示例2(Benz经销商卖Benz,单Benz无需知道与Benz经销商的关系)
依赖关系(Dependency)
描述一个对象在运行期间会用到另一个对象的关系(动态、临时关系)。
关系图
示例(汽车维修员维修汽车)
聚合关系(Aggregation)
(has-a):聚合关系用于表示实体对象之间的关系,表示整体由部分构成,但不是强依赖关系,部分可以脱离整体存在。
关系图
示例(部门由员工组成,但部门解散,员工还存在)
组合关系(Composition)
(contains-a):组合关系是一种强依赖的特殊聚合关系,同样可表示整体由部分构成,但部分不能脱离整体存在。