UML 类图
<图例与讲解来自 大话设计模式>
本章熟悉一下UML类图中的含义。
“动物”矩形框,代表一个类(Class),类图分为三层,第一层显示类的名称,如果是抽象类,则用斜体表示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或者行为。前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。
接口图与类图相似,主要区别是在顶端有一个<<interface>>显示。第一行是接口名称,第二行是接口的方法。接口还有另一种表示方法,俗称棒棒糖表示法,比如图例中的唐老鸭实现'讲人话'的接口。
类与类 之间有继承、聚合等关系,类与接口有实现关系,下面就看一下在UML图中是这么展示的。
图中动物、鸟、鸭、唐老鸭之间是继承的关系,使用 空心三角形+实线(继承) 表示。
大雁是可以飞翔的动物,这边让大雁实现了飞翔的接口,实现接口用 空心三角形+虚线 表示。
企鹅是特别的鸟类,对气候要求比较特殊,所以在这边与气候进行关联(association)。关联关系用实线箭头来表示。
大雁是群居动物,每一只大雁都属于一个雁群,一个雁群可以有多只大雁,所以他们之间就满足聚合(Aggregation)关系。
聚合关系表示一种弱的“拥有关系”,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形+实现箭头来表示。
合成(Composition,也有翻译成”组合“的)是一种强的”拥有关系,体验了严格的部分和整体的关系,部分和整体的生命周期一样。在这里鸟和翅膀就是合成(组合关系)。合成关系用实心菱形+实线箭头表示。
合成关系连线两端的数字”1“和”2“,这被称为基数,表示一般的类会有几个实例。如果一个类有无数个实例,就用 n 来表示。关联关系、集合关系也可以有基数。
动物依赖氧气和水,他们之间是依赖关系(Dependency),用虚线箭头表示。