UML 类图基础知识

iBit程序猿 2020年09月09日 1,259次浏览

类图格式

基础要素

  • 类名
  • 属性(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):组合关系是一种强依赖的特殊聚合关系,同样可表示整体由部分构成,但部分不能脱离整体存在。

关系图

示例(公司由部门组成,公司不存在,部门也不存在)