jack's notebook

UML 类图

字数统计: 669阅读时长: 2 min
2020/06/08 Share

类的属性和方法表示方式

UML类图

上面是一个 UML 类图,其中类名、属性(Field)和方法(Method)用带有分割线的矩形来表示,属性和方法前面的符号代表可见性,包括:

+ 表示 public

- 表示 private

# 表示 protected

上图的方法有完整的表示方式:**可见性 名称(参数列表)[:返回值类型]

对象和类之间的关系

relations-zh

上图是对象和类之间的关系:从弱到强

依赖

对类 B 进行修改会影响到类 A。

当你在代码中使用具体的类的名称时,通常意味着存在依赖关系。例如在指定方法签名时,或者通过调用构造函数对对象进行初始化时等。通过让代码依赖接口或抽象类(而不是具体类),可以降低其依赖程序。

通常情况下,UML 图不会展示所有依赖,因为太多了。所以通常仅挑选那些对于沟通你的想法来说重要的依赖关系。

关联

对象 A 知道对象 B。类 A 依赖于类 B。

关联有单向关联双向关联自关联

比如 顾客 A HAS 地址 B,这是单向关联;顾客 A PURCHASES 产品 B,产品 B IS SOLD TO 顾客 A,这是双向关联;节点 A Contains 节点 B,这是自关联;

关联关系可以用来表示类似于成员变量的东西。这个关系将一直存在,因此你总能通过订单 A 来获取顾客 B,但是它并不一定是成员变量。如果你根据接口来创建类,它也可以表示一个可返回“订单”的“顾客”的方法。

聚合

对象 A 知道对象 B 且由 B 构成。类 A 依赖于类 B。

聚合是一种特殊的类型的关联;聚合强调的是“整体”包含“部分”,但是“部分”可以脱离“整体”单独存在。

组合

对象 A 知道对象 B、由 B 构成而且管理着 B 的生命周期。类 A 依赖于类 B。

组合是一种特殊类型的聚合,其中一个对象由一个或多个其它对象实例构成。组合与其它关系的区别在于组件仅能作为容器的一部分存在,即“部分”不能脱离“整体”存在。

实现

类 A 定义的方法由接口 B 声明。对象 A 可被视为对象 B。类 A 依赖于类 B。

继承

类 A 继承类 B 的接口和实现,但是可以对其进行扩展。对象 A 可被视为对象 B。类 A 依赖于类 B。

CATALOG
  1. 1. 类的属性和方法表示方式
  2. 2. 对象和类之间的关系
    1. 2.1. 依赖
    2. 2.2. 关联
    3. 2.3. 聚合
    4. 2.4. 组合
    5. 2.5. 实现
    6. 2.6. 继承