美文网首页
UML 类与类之间的关系

UML 类与类之间的关系

作者: 公爵海恩庭斯 | 来源:发表于2016-01-12 12:20 被阅读319次

类与类之间存在六种关系

继承(Generalization)

实现(Realization)

依赖(Dependency)

关联(Association)

聚合(Aggregation Association)

组合(Composition Association)

根据语义,分为三类:

  • 泛化(Generalization)
    • 继承
    • 实现
  • 依赖(Dependency)
  • 关联(Association)
    • 关联(Association)
    • 聚合(Aggregation Association)
    • 组合(Composition Association)

语义:

关系 语义
泛化 is a/an
依赖 use a/an
关联 has a/an
聚合 has a/an
组合 contains a/an

比较

依赖和关联

从语义角度看,依赖是使用(use a/an),是临时的;关联是从属(has a/an),是长期的。

从代码角度看,依赖是临时的,通常采用局部变量、方法参数的形式;关联需要长期持有,通常采用实例变量的形式。

从使用者的角度看,依赖使用局部变量、方法参数保存对象,外部无法访问所依赖的对象;关联使用实例变量保存对象,可以通过访问实例变量来访问所关联的对象。

关系 如何保存对象 导航性(Navigable)
依赖 局部变量、方法参数 ×
关联 实例变量

注:这里的关联包括关联、聚合和组合。

关联和聚合

关联和聚合在代码层面是一致的,只能从语义上来区分。关联的两个对象之间是平等的,如我和我的朋友;而聚合则是整体和局部的关系,如公司和公司的员工。

聚合和组合

从语义角度看,聚合是(has a/an),多个整体可以聚合同一个对象;组合是在(has a/an)的基础上,(contains a/an),多个整体不能组合同一个对象。

从生命周期看,聚合对象的生命周期与整体无关,整体消亡后聚合对象能够独立存活;组合对象的生命周期与整体一致,整体消亡时组合对象也应一起消亡。

从代码角度看,聚合对象依赖注入,在析构中不销毁;组合对象由自己创建,在析构中需要销毁。

关系 不同整体能否引用同一个对象 整体消亡后,引用对象是否消亡 引用对象的来源
聚合 × 依赖注入
组合 × 内部创建

参考文献

相关文章

  • UML类图

    UML类图帮助我们标明类之间的关系,而在学习UML类图之前,得先理清类与类之间的关系。类的关系有泛化(Genera...

  • java中类与类之间的几种关系

    通常我们都会使用UML图来表示类与类之间的关系。在这里介绍基本的UML画法,并用UML图类表示类之间的关系。 UM...

  • 学习设计模式(1)

    一个UML类图 类之间的关系 类的继承结构表现在UML中为:泛化(generalize)与实现(realize) ...

  • 设计模式系列(七)UML类图

    UML类图 用于描述系统中类(对象)本身的组成和类(对象)之间的各种静态关系 类与类之间的关系:依赖、泛化(继承)...

  • 设计模式系列(八)23种设计模式-----单例设计模式

    UML类图 用于描述系统中类(对象)本身的组成和类(对象)之间的各种静态关系 类与类之间的关系:依赖、泛化(继承)...

  • UML 类与类之间的关系

    类与类之间存在六种关系 继承(Generalization) 实现(Realization) 依赖(Depende...

  • UML类图

    忘记了uml类图连线之间的关系,记录一下。 1. 关联关系 关联(Association)关系是类与类之间最常用的...

  • 软件构造之【设计模式篇】基础知识

    一. UML UML中的类图及类图之间的关系 访问上面的链接,掌握以下知识: 1.类、接口、类图 2.类之间的关系...

  • 类图组件的含义

    1.类与类之间关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Real...

  • UML类图

    1.类图基础属性 2.类与类之间关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization)...

网友评论

      本文标题:UML 类与类之间的关系

      本文链接:https://www.haomeiwen.com/subject/zfqckttx.html