首先推荐在线绘制UML的网址:https://www.processon.com/,很好用.
在软件开发过程中,开发人员往往需要通过绘制类图来理清业务的实现思路,从而方便代码实现,也便于后期的代码维护,下面是学习记录:
参考资料:http://www.jianshu.com/p/4cd95d4ddb59
在类图主要元素包括:类,接口,类接口之间关系
一,类:对于面向对象编程而言,类是对具有共同特征的物体的抽象;
在类图中一般的画法是:
说明:
“+”表示public;
“-”表示private;
"#"表示protected;
类的名称如果用抽象类,名称用斜体表示;
二,接口是一种特殊的类,具有类的结构但是不可以被实例化,只可以被继承(实现),在UML中,接口使用带有名称的小圆圈表示:
类图中关系:
常见的关系由如下几种:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
泛化:一种继承关系,表示一般与特殊的关系,制定了子类如何特化父类的特征和行为,其中箭头方向:带三角箭头的实线,箭头指向父类:
实现:是一种类与接口的关系,表示类是接口所有特征和行为的实现,其中带三角箭头的虚线,箭头指向接口:
3.关联关系:是一种拥有的关系,即一个类知道另一个类的属性和方法,如:老师与学生,关联关系可以是单项的也可以是双向的;
其中带普通箭头的实心线,指向被拥有者;
4.聚合关系:是整体和部分的关系,且部分可以离开整体而单独存在,如轮胎和车是部分和整体的关系,但是轮胎可以离开车而独立存在:
聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考虑具体的逻辑关系:
其中:带空心菱形的实心线,菱形指向整体:
组合:是整体和部分的关系,但是部分不能脱离整体而单独存在;
如公司和部门是整体和部分的关系,但是没有公司就不存在部门;
组合关系是关联关系的一种,是比聚合关系还要强的关系;
6.依赖关系:是一种使用关系,即一个类的实现需要另一个类的协助,所以尽量不要使用双向的依赖关系;
其中带箭头的虚线,指向被使用者;
各种关系的强弱:
泛化=实现 > 组合 > 聚合 > 关联 > 依赖