UML类图 —— 基本概念

这只是一个简单的UML类图入门,介绍一些基本概念。

1、 类

一般类分为3层:

  • 第一层: 类名
  • 第二层: 属性
  • 第三层: 方法

属性和方法都有各自的修饰:

  • + 表示 公共
  • # 表示 受保护
  • - 表示 私有
  • 下划线 表示 静态
  • 斜体 表示 抽象

2、 接口

接口一样分三层。

不过一般属性层不会去放东西。因为将常量变量放在 interface 中违背了其作为接口的作用而存在的宗旨,也混淆了 interface 与类的不同价值。

3、关系

3.1、 继承关系/泛化关系

继承关系为 is-a的关系;两个对象之间如果可以用 is-a 来表示,就是继承关系:xx是yy

比如:自行车是车、猫是动物

泛化关系用一条带空心箭头的直接表示。

3.2、 实现关系

实现关系用一条带空心箭头的虚线表示;

比如:”车”为一个抽象概念,在现实中并无法直接用来定义对象;只有指明具体的子类(汽车还是自行车),才 可以用来定义对象。

3.3、 聚合关系

聚合关系用一条带空心菱形箭头的直线表示。

聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语义;例如一个部门由多个员工组成;

与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;例如, 部门撤销了,人员不会消失,他们依然存在;

3.4、 组合关系

组合关系用一条带实心菱形箭头直线表示。

与聚合关系一样,组合关系同样表示整体由部分构成的语义;比如公司由多个部门组成;

但组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了;例如, 公司不存在了,部门也将不存在了;

3.5、 关联关系

关联关系是用一条直线表示的。

它描述不同类的对象之间的结构关系。它是一种静态关系, 通常与运行状态无关,一般由常识等因素决定的。它一般用来定义对象之间静态的、天然的结构。 所以,关联关系是一种“强关联”的关系。

3.6、 依赖关系

依赖关系是用一套带箭头的虚线表示的。

他描述一个对象在运行期间会用到另一个对象的关系。与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化。依赖关系也可能发生变化。

在程序中,我们要多用依赖关系,少用关联关系。

参考自:

http://blog.csdn.net/sfdev/article/details/3906243
http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html