问题杂谈:教你读懂UML图

UML图可以说是每个编程人员必须知道的知识,关于UML了相关知识可以专门开设课程进行学习,知识体系在软件工程中很重要,特别是设计到专业的团队开发时,这些东西显得尤为重要。我在这里只是介绍UML图中的基础概念,让你可以快速的看懂一张UML图,而不必啃UML的知识体系。

首先我网上找到了一张比较好的图(注:如有侵权请告知,仅此博文用途用,无意冒犯)

一、类图

以图中动物这个类为例,类图分为三层,第一层是类名,如果是抽象类,则会用斜体显示;第二层是类的特性,一般是属性和字段,第三层是类的操作,一般是方法。在特性和操作前的符号,其中,“+”代表public,“-”代表private,“#”代表protected。

二、接口图

接口类共有两种表示方式,第一种如图中的“飞翔”,它与类图的区别主要是顶端有<<interface>>,第一行是接口名,第二行是接口方法,符号含义相同。另一种表示方式如图中的“唐老鸭”的类似棒棒糖的表示方式,即唐老鸭实现了“讲人话”的接口

三、继承关系

继承关系用“空心三角形+实线”表示,即子类属于父类,如鸟属于动物。

四、实现接口

类实现了一个接口的关系用“空心三角形+虚线”表示,即大雁能够飞翔。

五、关联关系

关联关系用实线箭头表示,即一个类需要知道另一个类的时候,就用关联关系,如企鹅需要知道气候,用代码的方式来看,就是企鹅类中使用了气候作为属性,代码表示如下。

class Penguin extends Bird{
	private Climate climate;
}

六、聚合关系

聚合关系用“空心的菱形+实线箭头”表示,其中聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,如每一个大雁属于一个雁群,一个雁群可以有多只大雁,代码表示如下。

class WideGooseAggregate{
	private WideGoose[] arrayWideGoose;
}

七、合成(组合)关系

合成(组合)关系用“实心菱形+实线箭头”表示,其中合成是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。即图中鸟与其翅膀是合成关系,因为他们是整体,生命周期一样。另外合成关系的连线两端还有数字“1”和数字“2”,这被称为基数,表明这一端可以有几个实例,如果有无数个实例,就用“n”表示,关联关系、聚合关系也可以有基数,代码表示如下。

class Bird{
	private Wing wing;
	public Bird() {
		wing = new Wing();
	}
}

八、依赖关系

依赖关系用“虚线箭头”表示,即图中动物需要水、氧气以及食物,代码表示如下。

abstract class Animal{
	public Metabolism(Oxygen oxygen, Waiter water) {
		
	}
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章