当前位置 博文首页 > 韩超的博客 (hanchao5272):UML类图的依赖、关联、聚合、组合、

    韩超的博客 (hanchao5272):UML类图的依赖、关联、聚合、组合、

    作者:[db:作者] 时间:2021-09-05 16:15

    概述

    在UML类图中,类之间的耦合关系存在多种,它们从弱到强排序为:

    依赖 < 关联 < 聚合 < 组合 < 泛化 < 继承

    如下图所示:
    在这里插入图片描述

    依赖(dependency)

    • 说明:是一种使用关系。
    • 形状:虚线+V型箭头,箭头指向被使用者。
    • 体现:局部变量、方法参数或者调用静态方法。
    • 示例:持久层DemoDao类的insert(DemoPo po)方法中使用了参数DemoPo po

    关联(association)

    • 说明:是一种拥有关系。
    • 形状:实线+V型箭头,箭头指向被拥有者。
    • 体现:成员变量。
    • 示例:控制层DemoController类中拥有成员变量服务层DemoService

    聚合(aggregation)

    • 说明:是一种整体与部分的关系,部分可以单独存在
    • 形状:空心菱形+实线+V型箭头,菱形指向整体,箭头指向部分。
    • 体现:成员变量。
    • 示例:公司Company作为一个整体,旗下拥有很多个员工Employee,这些员工是公司这个整体的一部分;员工Employee也可以单独存在,有自己的行为。

    组合(composition)

    • 说明:是一种整体与部分的关系,部分只能依赖整体存在
    • 形状:实心菱形+实线+V型箭头,菱形指向整体,箭头指向部分。
    • 体现:成员变量。
    • 示例:自定义的链表MyList作为一个整体,其内有很多个节点Node,这些节点是链表这个整体的一部分;节点Node不能单独存在,它的一切行为都是为了服务链表。

    实现(realization)

    • 说明:是一种接口与类的关系。
    • 形状:空心三角箭头+虚线,箭头指向接口,虚线指向类。
    • 体现:类实线接口。
    • 示例:接口List的一个实现类是ArrayList

    泛化(generalization)

    • 说明:是一种父类与子类的关系。
    • 形状:空心三角箭头+实线,箭头指向父类,实线指向子类。
    • 体现:子类继承父类。
    • 示例:父类AbstractPerson的一个子类是Person

    总结

    在UML类图中,类之间的耦合关系存在多种,它们从弱到强排序为:

    依赖 < 关联 < 聚合 < 组合 < 泛化 < 继承

    参考文档

    • https://www.cnblogs.com/pangjianxin/p/7877868.html
    • https://www.cnblogs.com/liuzhang/archive/2013/03/17/2964095.html
    cs