【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现

文章目录

  • 一、类的属性和方法
  • 二、类间的关系
    • 2.1 关联关系
      • 2.1.1 单向关联
      • 2.1.2 双向关联
      • 2.1.3 自关联
    • 2.2 聚合关系
    • 2.3 组合关系
    • 2.4 依赖关系
    • 2.5 继承关系
    • 2.6 接口实现关系

一、类的属性和方法

类包含类名、属性(field)、方法(methods),用矩形表示,如下图是 Employee 类,有 name、age、email 三种属性,和 modifyInfo() 方法。

【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第1张图片

属性的完整格式是:可见性 名称:类型 [=缺省值]
方法的完整格式是:可见性 名称(参数列表)[: 返回类型]

可见性有三种符号:+ 表示 public,# 是 protected,- 是 private。

二、类间的关系

2.1 关联关系

2.1.1 单向关联

用带箭头的直线表示,表示拥有。

如下图:每个 Customer(顾客)都 has(拥有)一个 Address(地址)。这通过让 Customer 类持有一个 Address 类型的成员变量 来实现。
【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第2张图片

2.1.2 双向关联

双向关联,用不带箭头的直线表示,表示双方各自持有对方类型的成员变量。

如下图:每个 Customer(顾客)都有一堆 Products[](商品),每个 Product(商品)都记录了被售卖给了哪个 Customer(顾客)。

【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第3张图片

2.1.3 自关联

用一个带箭头的直线指向自身,即自关联,即自己包含自己。

如下图:Node 类包含 类型为 Node 的成员变量
【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第4张图片

2.2 聚合关系

聚合关系,是一种特殊的关联关系,其表示整体和部分间的关系。

其强调“整体”包含“部分”,但“部分”可以脱离“整体”而独立存在。

用带空心菱形和箭头的直线表示,菱形在整体类一侧。

如下图:Car(汽车)contains(包含了)Engine(发动机),而 Engine 脱离了 Car 也能独立存在。
【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第5张图片

2.3 组合关系

聚合关系,是一种特殊的关联关系,其表示整体和部分间的关系。

组合关系和聚合关系的区别是:“部分”脱离了“整体”就不复存在。

如下图,Mouth(嘴)是 Head(头)的一部分,且不能脱离了头儿单独存在。

用带实心菱形的直线表示,菱形在整体类一侧。

【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第6张图片

2.4 依赖关系

用带箭头的虚线表示。

如下图,Driver 的 drive 方法,只有传入了一个 Car 对象才能发挥作用,因此 Driver 类依赖于 Car 类。
【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第7张图片

2.5 继承关系

基类和派生类之间,用带空心三角形的直线表示。
【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第8张图片

2.6 接口实现关系

多个类可以共同实现同一个接口。

【设计模式】0、uml 类图:关联、聚合、组合、依赖、继承、实现_第9张图片

你可能感兴趣的:(设计模式,设计模式,uml)