UML之类图

类图

类图用于描述系统中所包含的类及它们之间的相互关系。一个类分为三个部分:类名、属性、方法。

class

  1. 类名
    • 如果类名是正体字,说明类是具体的类,如果是斜体字,说明类是一个抽象类。如果是接口,在类上回有<<interface>>的标识。
  2. 属性列表
    • 属性可以是public,private,protected,分别使用+,-,#表示
    • 冒号后面是属性的类型
  3. 方法列表
    • 方法也可以是public,private,protected,表示方法和属性的一致。
    • 方法括号中加参数的类型和参数名,冒号后面是返回的类型

类之间的关系

类之间的关系分为6种:泛化、实现、聚合、组合、关联、依赖。

泛化关系

泛化关系就是继承关系。

泛化关系使用一条带空心箭头的实线表示

如SubObject继承自SuperObject:

generalization

实现关系

实现关系在Java中就是接口的实现。

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

realize

聚合关系

聚合关系表示实体对象之间的关系,整体由部分构成,例如部门由人员组成。与组合关系不同的是,整体和部分不是强依赖,整体不存在时,部分仍可以存在。如部门消失了,但人员不会消失。

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

下图表示人员聚合到部门上,或者说部门由人员组成:

aggregation

组合关系

组合关系也表示整体由部分构成。例如公司由多个部门组成,与聚合关系不同的是,组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,部分也不存在了。如公司不存在了,部门也将不存在了。

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

下图表示部门组合成公司,或者说公司由部门组成。

composition

关联关系

关联关系用于表示不同对象之间的结构关系,一般是长期的、静态的关系,可以是单向的或双向的。

关联关系用一条实线表示

默认不强调方向,表示两个对象互相知道,但如果强调方向,下图表示A知道B,但B不知道A。在代码中关联关系通常以成员变量的形式出现。

association

此外,在关联关系中,不同对象之间还有一对一、一对多、多对多的关联关系,主要在领域内的概念类或现实世界中对象的可视化表示,建立领域模型时常用到。如一对一的关联关系:

one-to-one

依赖关系

依赖关系表示一个对象在运行期间会用到另一个对象,和关联关系不同的是,依赖关系是一种临时性的关系,随着运行依赖关系也可能发生变化。注意:双向依赖是一种非常糟糕的结构,不应该出现。

依赖关系用一条带箭头的虚线表示

在代码中,依赖关系通常为类方法调用的传入参数,箭头指向为调用关系,如下图中C临时知道D。

dependency

总的来说后几种关系表现的强弱程度为:组合>聚合>关联>依赖。下面的图展示了类的所有关系:

allclass

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值