• UML类图总结


    类之间的关系,依赖、泛化(继承)、实现、关联、聚合与组合

    • + public
    • - private
    • # protected
    • 属性表达式 可见性 名称 :类型 [ = 缺省值]
    • 方法表达式 可见性 名称(参数列表) [ : 返回类型]

    关联关系

    关联关系是类与类之间的联系,是依赖关系的特例

    关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系。如老师和学生,师傅和徒弟,涨幅和妻子,关联关系是类与类之间最常用的一种关系,分为一般关联关系,聚合关系和组合关系

    关联又可以分为单向关联,双向关联,自关联

    1.单向关联

    在UML类途中单向关联用一个带箭头的实线表示,上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7VYcSna-1656479929472)(C:\Language\code\document\设计模式\image\0aeeceec02b28163f22ac423503a037.png)]

    2.双向关联

    双向关联就是双方各自持有对方类型的成员变量。

    在UML类图中,双向关联用一个不带箭头的直线表示,图中Customer类中维护一个List,表示一个顾客可以购买多个商品,在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gDbB1cHn-1656479929473)(C:\Language\code\document\设计模式\image\1fa81e9330c75f61ec53a920a1458d3.png)]

    3.自关联

    自关联在UML类图中有一个带箭头且指向自身的线表示,图中的意思就是Node类包含类型为Node的成员变量,也就是自己包含自己

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-59WMJVuh-1656479929474)(C:\Language\code\document\设计模式\image\e1d2e36b5310bf507b6119080843c90.png)]

    聚合关系

    聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开

    (台式机:电脑,显示器,鼠标,键盘;大学:老师,学生;)

    聚合关系是关联关系的一种,是强关联关系,是整体和部分的关系。

    (整体和部分的内容可以分开,就是聚合,如果不可以分开就是组合)

    聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。例如,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。

    在UML类图中,组合关系用带实心菱形的实现来表示,菱形指向整体。下图所示的是头和嘴的关系图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ju6XlOsG-1656479929474)(C:\Language\code\document\设计模式\image\ebe4648467dfd5216da3db36955d8fb.png)]

    组合关系

    组合关系(Composition):整体与部分的关系,但是整体与部分不可以分开。

    (头:眼睛,嘴,耳朵;人:胳膊,腿)

    组合表示类之间的整体与部分的关系,但是他是一种更强烈的聚合关系。

    (整体和部分的内容可以分开,就是聚合,如果不可以分开就是组合)

    在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在。例如,偷喝嘴的关系,没有了头,嘴也就不存在了。

    在UML类图中,组合关系用带实心菱形的实现表示,菱形指向整体。下图所示头和嘴的关系图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2HlaMuiq-1656479929475)(C:\Language\code\document\设计模式\image\8eda4e875afeba902968fe677517fd8.png)]

    依赖关系

    1. 只要是在类中用到了对方,那么他们之间就存在依赖关系。
    2. 类的成员属性
    3. 方法的返回类型
    4. 方法接收参数类型
    5. 方法中使用到

    依赖关系是一种使用关系,他是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量,方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。

    在UML类图中,依赖关系使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。下图所示的是司机和汽车的关系图,司机驾驶汽车:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0YexnO26-1656479929475)(C:\Language\code\document\设计模式\image\9c7dc519c8312a6bac5b5d2ad9760ec.png)]

    继承关系(泛化关系)

    继承关系与泛化关系是相同的概念,是依赖关系的特例。

    继承关系是对象之间耦合度最大的一种关系,表示一般一特殊的关系,是父类与子类之间的关系,是一种继承关系。

    在UML类图中,泛化关系用带空心三角箭头的实线来表示,箭头从子类指向父类。在代码是现实,使用面向对象的集成机制类实现泛化关系。例如,Student类和Teacher类都是Person类的子类,其类图如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EMfLHaKh-1656479929476)(C:\Language\code\document\设计模式\image\90f364081ce21a92d8e7f68642af062.png)]

    实现关系

    实现关系是接口与实现类之间的关系。是依赖关系的特例

    在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有抽象操作。

    在UML类图中,实现关系使用带空心三角箭头的虚线来表示,箭头从实现类指向接口。例如,骑车和船实现了交通工具,其类图如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3h4SZ10e-1656479929476)(C:\Language\code\document\设计模式\image\f7c192d5fb99f4a1e9d608bc841fda4.png)]


    依赖是对象间短暂的一种关系,被调用类表现为调用类的局部变量、方法的参数、以及调用类调用被调用类的静态方法,属于依赖关系。

    关联是对象间长期的一种关系,是依赖关系的特例,在这个长期的关系中,被调用类表现为调用类的引用、或者调用类的属性,这种情况说调用类和被调用类之间就属于关联关系。

    聚合和组合是关联的特殊表现

    依赖是一种弱关联

    关联,聚合,组合,依赖,继承,实现

  • 相关阅读:
    Linux系统的安装
    最新ACM Fellow名单发布,唐杰等4名中国大陆学者当选,中国机构入选人数排名第二
    JVM 篇之 牛刀小试 (一)
    【微信小程序开发】自定义组件以及页面布局设计
    Java Maven项目打jar包方法
    SSM+老年人活动信息管理系统 毕业设计-附源码121730
    Vue使用脚手架出现问题 2
    手机USB共享网络是个啥
    【Spring boot 读取系统环境变量】
    华为云智能化组装式交付方案 ——金融级PaaS业务洞察及Web3实践的卓越贡献
  • 原文地址:https://blog.csdn.net/yxf0448/article/details/125519906