vlambda博客
学习文章列表

设计模式-UML类与类之间的关系

  • 依赖关系

  • 关联关系

  • 泛化关系

  • 实现关系

    • 参考资料

最近在重拾设计模式,就找来大学时看的秦小波的《设计模式之禅》重新看一遍,设计模式自然少不了UML类图,可是好久不看设计模式,UML类图有点看不懂了,这里先把UML类图重拾一下,参考《UML2面向对象分析与设计》一书和网上的文章,只保留最精简的部分进行说明,其实只记住下边的一幅图就行了

来,上图

依赖关系

依赖关系是一种使用关系,指的是A的改变可能影响到使用A的B,通常体现在A作为B的成员方法的参数,从B指向A。

例如:司机开车,然后司机开车的动作(方法)需要传入汽车对象。

关联关系

关联关系表示一个类和另一个类之间有关系,通常关联关系是一个类的对象作为另一个类的成员,从类指向类成员的类,例如汽车和轮胎,则由汽车类指向轮胎类。

聚合关系和组合关系也属于关联关系,更加侧重整体/部分关系的描述。

聚合关系指的是成员对象可以脱离整体对象独立存在,例如汽车和轮胎,轮胎可以独立于汽车存在。

组合关系中整体对象可以控制成员对象的生命周期,成员对象不可以脱离整体对象独立存在,例如:身体和头,头不可能独立于身体存在(你要是非得抬杠说,可以独立存在,我也没办法,不过场面有点血腥,不敢看)。

泛化关系

泛化关系就是我们平常说的继承,子类继承父类,从子类指向父类。

实现关系

实现关系就是我们平常说的实现某个接口,从实现类指向接口

参考资料

  1. http://www.uml.org.cn/oobject/201211231.asp

  2. 《UML2面向对象分析与设计》