UML — — 类图

目录

  • 前言
  • 类图基本概念
  • 类之间的关系
  • 实现关系(realize)
  • 泛化关系(generalization)
  • 依赖关系(dependency)
  • 关联关系(association)
  • 聚合关系(aggregation)
  • 组合关系(composition)

需要查看其它设计模式描述可以查看我的文章《设计模式开篇》。

前言

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,看后面章节的设计模式结构图就没有什么问题了;

类图基本概念

类图的3个基本组件:类名、属性、方法。

UML — — 类图_第1张图片
类名、属性、方法

类之间的关系

依赖关系的强弱程度依次为:实现 = 继承 > 组合 > 聚合 > 关联 > 依赖;

实现关系(realize)

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

UML — — 类图_第2张图片
实现

泛化关系(generalization)

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

泛化关系用一条带空心箭头的直接表示;如下图表示(A继承自B);

UML — — 类图_第3张图片
泛化关系(generalization)

依赖关系(dependency)

对象之间最弱的一种关联方式,是临时性的关联。依赖关系是用一套带箭头的虚线表示的;如下图表示A依赖于B;他描述一个对象在运行期间会用到另一个对象的关系;

UML — — 类图_第4张图片
依赖关系(dependency)

关联关系(association)

对象之间的强关联方式,是长期性的关联。关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示A知道B,但 B不知道A;

UML — — 类图_第5张图片
关联关系(association)

聚合关系(aggregation)

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成;

UML — — 类图_第6张图片
聚合关系(aggregation)

组合关系(composition)

组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成;

UML — — 类图_第7张图片
组合关系(composition)

你可能感兴趣的:(UML — — 类图)