UML类图知识整理

之因此学习UML类图,是由于想把前面看的《设计模式之禅》再看一遍,但文章都用到了uml类图,前面其实都只知其一;不知其二,以为本身挺low的,因此以为仍是得看明白才行。才浏览了网上几篇博客,现将知识点整理以下:html

博客来源:设计模式

Java 大白话讲解设计模式之 -- UML类图学习

类之间的关联关系和依赖关系.net

依赖、关联、聚合、组合设计

看懂UML类图和时序图3d

1、UML类图中一个类的基本表示

如图,Person类被分为三部分,从上到下依次是:htm

  • 类名
  • 成员变量,表示为:权限 属性名:类型 [ = 默认值 ]
  • 方法,表示为:权限 方法名称(参数列表) [ : 返回类型]

其中,权限的表示方法简写为了+、#、~、-,分别表示public、protected、default、privite。对象

2、UML图中的关系表示

(一)泛化(继承)关系

A指向B,表示B是A的泛化,即继承。blog

(二)实现关系

A指向B,表示A实现了B继承

(三)依赖关系

A指向B,表示A依赖于B,即在A中使用到了B对象,与关联关系相区分,依赖比关联关系要弱一些,依赖关系通常是类B以参数的形式传入类A的方法(参数依赖)、类B以局部变量的形式存在于类A的方法中(局部依赖),类A调用类B的静态属性或方法(静态依赖),而关联关系一般是指一个类对象做为另外一个类对象的成员变量。

(四)关联关系

关联又分为单向关联,双向关联。其中:

1.单向关联

A指向B表示,通常用于表示B做为成员变量在A中,是一种较强的关系。

2.双向关联

表示A和B都做为成员变量在对方类中,代码中应该尽可能避免双向关联。

(五)特殊的关联关系

1.聚合关系

一种特殊的关联关系,用以表示总体由部分构成的语义,但与组合关系相区分的是,其中总体和部分又相对独立,能够分开,如学生与选修课,选修课由学生一块儿选修组成,可是选修课没有了,不表明学生这个实体就失去意义了。

菱形那一边表示总体,这里的图表示B由A组成,但就算没了B,A也有本身的意义。

2.组合关系

也是一种特殊的关联关系,与聚合关系相似,表示的也是总体由部分构成,可是区别的是即便聚合的总体被破坏,部分则失去了意义,换句话说部分的生命周期依赖于总体的生命周期,如公司与部门,公司不存在了,则部门也不存在了。

菱形那一边表示总体,这里的图表示B由A组成,也表示没了A,B也不存在(注,与聚合关系图对比这里是实心的菱形)。

相关文章
相关标签/搜索