UML建模中的关系包括:依赖、泛化、关联、实现、聚合、组合等。
很多人看到UML类图后都看不懂,为什么?
因为基础的关系没有掌握,各个框之间的关系是啥都不明白,怎么能懂类图呢。不管是类图、用例图、指示图等等,都如此。
依赖关系(dependence)
B类是A类的变量,A类持有B类的引用。像这种关系为依赖关系。
泛化关系(generalization)
泛化关系相当于Java当中的继承,比如:A类有两个子类,B类和C类。B类和C类具有父类A类的属性和方法。
关联关系(association)
关联关系包括:单向关联、双向关联和自关联。默认创建的关联关系是双向关联,可以理解为你中有我、我中有你。
两个类,靠近(*…*)的类为当前类,远离的为其他类 :
- 0…1 : 其他类的一个对象 与 当前类的零个或一个对象 有关联
- 0…* : 其他类的一个对象 与 当前类的零个或无数个对象 有关联
- 1…1 : 其他类的一个对象 与 当前类的一个对象 有关联
- 1…* : 其他类的一个对象 与 当前类的一个或无数个对象 有关联
- * : 其他类的一个对象 与 当前类的无数个对象 有关联
实现关系(realization)
实现关系就是Java当中讲的实现接口。
聚合关系(aggregation)
聚合关系表示的是整体和部分的关系,但是整体和部分是可以分开的。比如:学校和学生的关系,学校和学生可以是一体的,学生也可以离开学校。
组合关系(composition)
组合和聚合看起来很像,但它们的区别是:聚合的整体和部分开分开,但组合就相当于强引用,不可分开。比如View和ViewGroup是不能分开的。