类图详解

类与类之间的关系主要有六种:继承、实现、组合、聚合、关联和依赖,这六种关系的箭头表示如下,


类与类之间的关系

六种类关系中,组合、聚合、关联这三种类关系的代码结构一样,都是用属性来保存另一个类的引用,所以要通过内容间的关系来区别。

详解

  1. 继承(也称为泛华)和实现就不赘述了,即java代码里的extendsimplement
  2. 组合关系:整体与部分的关系,但是整体与部分不可以分开。
    组合关系表示类之间整体与部分的关系,整体和部分有一致的生存期。一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。
    例如:人由头部和身体组成,两者不可分割,共同存在。(个人认为,甄别的一个角度是否在于new一个整体类时,同时new了部分类,并保存在整体类的属性中)
    组合关系
  3. 聚合关系:整体和部分的关系,整体与部分可以分开。
    聚合关系也表示类之间整体与部分的关系,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。
    例如:公交车司机和工衣、工帽是整体与部分的关系,但是可以分开,工衣、工帽可以穿在别的司机身上,公交司机也可以穿别的工衣、工帽。


    聚合关系
  4. 关联关系:表示一个类的属性保存了对另一个类的一个实例(或多个实例)的引用。
    关联关系是类与类之间最常用的一种关系,表示一类对象与另一类对象之间有联系。组合、聚合也属于关联关系,只是关联关系的类间关系比其他两种要弱。
    关联关系有四种:双向关联、单向关联、自关联、多重数关联。
    例如:汽车和司机,一辆汽车对应特定的司机,一个司机也可以开多辆车。
    image.png
  5. 依赖关系:假设A类的变化引起了B类的变化,则说名B类依赖于A类。
    大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
    依赖关系是一种“使用”关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
    例如:汽车依赖汽油,如果没有汽油,汽车将无法行驶。


    依赖关系

总结

这六种类关系中,组合、聚合和关联的代码结构一样,可以从关系的强弱来理解,各类关系从强到弱依次是:继承→实现→组合→聚合→关联→依赖。如下是完整的一张UML关系图。


image.png

参考: UML类图详解

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • UML类图是一种结构图,用于描述一个系统的静态结构。类图以反映类结构和类之间关系为目的,用以描述软件系统的结构,是...
    美虎辘辘阅读 651评论 0 0
  • UML类图是一种结构图,用于描述一个系统的静态结构。类图以反映类结构和类之间关系为目的,用以描述软件系统的结构,是...
    php红薯阅读 930评论 0 1
  • UML类图是一种结构图,用于描述一个系统的静态结构。类图以反映类结构和类之间关系为目的,用以描述软件系统的结构,是...
    斯文小蚂蚁阅读 4,775评论 0 2
  • UML类图是一种结构图,用于描述一个系统的静态结构。类图以反映类结构和类之间关系为目的,用以描述软件系统的结构,是...
    php红薯阅读 1,168评论 0 0
  • 类图是面向对象系统建模中很常用也很重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口间关系的一种模型...
    Jenson_阅读 1,040评论 0 6