教你看懂UML类图

@

在学习设计模式时,我们要看到很多UML类图,so先来学习下如何看懂UML类图

类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图中最基本的元素是类、接口。

定义一个类:

-w310
参见上图这个动物就代表一个类,这个类图分为三层

  • 第一层:代表类名,如果类名是斜体的话,代表是一个抽象类
  • 第二层:代表类的字段和属性
  • 第三层:代表类的方法和行为

我们可以发现,在类的字段和类的方法前面符号有一个+号,这里对应的含义:

+ - #
public private protected

定义一个接口:

定义一个接口,有两种方式:
1、矩形表示法
-w113
顶端有interface,第一行表示接口名称,第二行表示接口方法

2、棒棒糖表示法
-w459

圆圈旁的是接口名称,第三行是接口方法,接口方法在实现类中出现。

如何表示继承关系?

-w315
继承关系是由空心三角和实线来表示

如何表示实现关系?

-w321

实现关系是由空心三角和虚线来表示

如何表示关联关系?

-w330

当一个类’知道‘另一个类的时候,可以用关联来表示,表现形式为一个对象含有另一个对象的引用。也就是说,如果一个对象的类代码中,包含有另一个对象的引用,那么这两个对象之间就是关联关系。关联关系用实线箭头来表示。

如何表示聚合关系?

-w286

聚合标识的是一种弱的’拥有‘关系,体现是A对象可以包含B对象,但B对象不是A对象的一部分。例如,公司部门与员工的关系,一个员工可以属于多个部门,一个部门撤消了,员工可以转到其它部门。
聚合关系用空心的菱形和实现箭头来表示

如何表示组合关系?

组合关系是一种强的’拥有‘关系,体现是严格的部分和整体关系,部分和整体的生命周期是一样的。例如,鸟的生命和鸟的翅膀,它们的生命周期一致。组合关系用实心的菱形和实现箭头来表示
-w473
合成关系的两端还有数字 1 和 2 ,这个被称为基数,表明这一端的类可以有多少实例,很显然一个鸟是有两个翅膀的;如果有无数个实例用n来表示,关联关系、聚合关系都是有这种基数标识

如何表示依赖关系?

-w604
比如动物依赖于氧气和水,他们之间就是依赖关系,由使用方指向被使用方,表示使用方对象持有被使用方对象的引用,用虚线箭头来表示;
依赖关系在Java中的具体代码表现形式为B为A的构造器或方法中的局部变量、方法或构造器的参数、方法的返回值,或者A调用B的静态方法。

posted @ 2021-01-04 11:41  binbinshan  阅读(246)  评论(0编辑  收藏  举报