什么是UML
UML是非专利的第三代建模和规约语言,一般在理解项目结构、执行顺序、架构思想特别有用,下面将简单介绍平时使用中用得到的相关UML知识。
类图关系
类图包含三个部分的矩形来描述,最上面那个表示类的名称,中间表示类的属性,最下面表示类的行为。
其中+表示public
,-表示private
,:修饰属性的时候如name:String
表示的是声明的一个String类型的name类属性。修饰行为则表示类方法的返回值类型如run():String
表示类run方法的返回值类型是String。
类图除了可以表示类内部结构之外,还可以表示实体之间的相互关系,它们分别是关联关系
、泛化关系
、依赖关系
,下面使用大话设计模式这本书一个很形象的例子介绍下面类图的关系如下:
- 关联关系
一般将生活中的对象抽象到软件系统中。一般类A可以访问类B,但类B不能访问类A,我们称这两个类为单向关联,如果两个类可以相互关联则称之为双向关联。一般关联关系和属性很像,两者的区别就是当一个类的属性引用指向另一个类,就变成了关联关系。
关联关系包含两个特性:聚合关系和组合关系。其中组合比聚合更为严谨一些,比如上面那个鸟和翅膀就是组合关系(用实心的菱形,即翅膀是鸟的一部分)组合关系是整体和局部的关系,两者生命周期一致。聚合(空心菱形表示,即大雁是大雁群里面的一份子) - 泛化关系
泛化关系说白了就是继承的意思,继承是用带空心的三角形实线。 - 依赖关系
就如上面水和氧气是动物所依赖的,依赖(用虚线+箭头表示),一般是修改某个类的时候,也会造成另一个类的改动,我们就称两个类存在依赖关系。 - 实现关系
上图大雁有个飞行的方法,实现的方法是飞翔中的飞方法,这种就是实现关系(即虚线+空心三角形,同样唐老鸭的说话方法的实现–讲人话也是实现关系(也叫棒棒糖表示法)。