UML(Unified Modeing Language统一建模语言)
1.时序图
定义: 通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
主要元素:对象(actor)、生命线(lifeline)、控制焦点(focus of control)、消息(message)等。
时序图示例:
对象对应client、server等,生命线对应竖着的虚线,控制焦点对应方法调用生命周期(图中长方形部分),消息对应每个方法调用对应的内容(如图中work,open等方法)。
另外,方法调用实线+实心箭头表示同步调用,实线+普通箭头代表异步调用,虚线+普通箭头表示方法返回。
2.UML类图:
主要元素:类名块、属性块、方法块。
UML类图示例:
类名块:表示类图表示的类的名称
属性块:${访问权限}${属性名}:${属性类型}
方法块:${访问权限}${方法名}:${方法返回值}
如果方法返回值为空,则不需要`:${方法返回值}` 部分。
访问权限:
`+`代表public、`-`代表private、`#`代表protected、`~`代表default、另外`____`下划线表示static,`<i>element</i>`斜体代表抽象。
UML类图(多个类的关系):
类关系阐述(结合上图,从上往下):
依赖关系:虚线+箭头,如动物依赖氧气和水。
继承(泛化)关系:实线+空心三角箭头,如鸟类继承了动物的共性,新陈代谢,繁殖等。
组合关系(contains a):实线箭头+实心菱形,如一只鸟拥有两只翅膀。组合具有相同的生命周期,需要同聚合相区分。
关联关系:实线+箭头,如企鹅关联气候,一般关联关系会在被关联对象中申明一个关联对象的引用,如在企鹅实例中申明气候的引用。
聚合关系(has a):实线箭头+空心菱形,如一个大雁群,聚合了多只大雁。两者生命周期不同。
实现关系:虚线+空心三角箭头,如大雁实现了飞翔接口(接口一般是基础能力的抽象)。另外实现关系也可以采用棒棒糖表示法,如唐老鸭继承了鸭下蛋的功能,又实现了讲人话的接口。实现讲人话接口的表示方法即是使用棒棒糖表示法。
常用的类关系我们就介绍完了,需要注意的是,箭头指向是子类指向父类,这也很好理解,子类能感知到父类,而父类是无法知晓子类的。比如提到鸟,就知道它一定是动物,而提到动物,它就不一定是鸟了。另外菱形一般是指向整体,箭头指向部分。
自此,我们uml介绍及实现部分就结束了。