学而不思则罔,思而不学则殆
UML类图可以帮助我们更加立体的梳理项目结构,快速入手项目。
表示方式
可见性
UML类图中表示可见性的符号有三种,用来表示属性或方法的可见性:
符号 | 说明 |
---|---|
+ | 表示public |
- | 表示private |
# | 表示protected(friendly也归入这类) |
抽象方法 | 斜体表示 |
属性表示
可见性 名称 :类型 [ = 缺省值]
+ name:String = zy
- age:int = 28
# id:int
方法表示
可见性 名称(参数列表) [ : 返回类型]
+ getName():String
+ setName(String):void
- getAge():int
- setAge(int):void
# getId():int
# setId(int):void
类的关系
总结
关系 | 表示 |
---|---|
实现关系 | 空心三角形+虚线 |
继承关系 | 空心三角形+实线 |
关联关系 | 实线箭头 |
依赖关系 | 虚线箭头 |
聚合关系 | 带空心菱形和箭头的直线表示 |
组合(合成)关系 | 带实心菱形和箭头的直线表示 |
实现关系与继承关系
实现关系:接口和类之间实现(Realization)关系。对应implement关键字,在UML类图中用带空心三角形+虚线表示
继承关系:表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。继承使用空心三角形+实线表示。
关联关系和依赖关系
关联关系又可进一步分为单向关联、双向关联和自关联。
单向关联
在UML类图中单向关联用一个带箭头的直线表示。上图表示每个人都有一个地址。
双向关联
从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。Person都有一个身份表示(身份证),一个身份证能够表示某一个人。
自关联
自关联主要是自己关联自己,在实体类中比较常见,比如链表Node类,有属性next,指向下一个Node,属于自关联;
依赖(Dependency)关系
依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
聚合关系和组合(合成)关系
聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能单独存在。
组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。