最近发现同事在设计类接口的时候喜欢用UML图,以前对这方面了解一点,只是没有怎么使用过。
了解一下UML的基本原理,感觉还是挺有意思的。里面提到的几个关系,还是需要记录一下,分辨清楚
继承与实现
- 泛化(generalization):表示is-a的关系,其实就是继承关系。三角箭头加实线表示。三角指向父类。
- 实现(Realization): 专门指接口的实现。三角箭头加虚线表示。三角指向接口。
关联与依赖
关联(Association) : 引用关系,可简单理解为类的属性。在类图使用带箭头的实线表示,箭头指向被引用的类(属性)。一般是单向。如果是双向,要考虑循环引用问题,这样的属性要考虑用weak弱引用。
依赖:简单说就是方法的调用关系。在类图使用带箭头的虚线表示,箭头指向被调用的类。
聚合与组合
聚合(Aggregation) : 表示has-a的关系,群体和个体的关系。个体可单独存在。在类图使用空心的菱形表示,菱形指向群体。
组合(Composition) : 表示contains-a的关系,整体和部分的关系。部分不能脱离整体存在。在类图使用实心的菱形表示,菱形指向整体。
下面是类图的一些基本组件: