zoukankan      html  css  js  c++  java
  • UML类图中的六种关系(物理设计阶段)

            UML类图中经常会用到各种箭头和线条来表示不同类或者接口之间的关系,因此非常好的理解各个图标的含义是很有必要的。

            在物理设计阶段可以通过EA工具将类图搭建好,然后直接生成物理类,这样也可以减少物理设计的工作量。

    下面介绍UML中六种关系:

    1. 泛化(Generalization

    概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系。

    表示:用实线空心三角箭头表示。

    clip_image001

    2. 实现(Realization

    概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述。

    表示:空心三角形箭头的虚线,实现类指向接口

    clip_image002

    3. 依赖(Dependency

    概念:是一种使用的关系,即一个类的实现需要另一个类的协助。java中,方法参数需要传入另一个类的对象,就表示依赖这个类。

    表示:虚线箭头

    clip_image003

    4. 关联(Association

    概念:表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。

    java中一个类的全局变量引用了另一个类,就表示关联了这个类

    表示:实线箭头

    clip_image005

    5. 聚合(Aggregation

    概念:聚合是关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。程序中聚合和关联关系是一致的,只能从语义级别来区分;

    表示:尾部为空心菱形的实线箭头(也可以没箭头)

    clip_image007

    6. 组合(Composition

    概念:组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。程序中组合和关联关系是一致的,只能从语义级别来区分。

    表示:尾部为实心菱形的实现箭头(也可以没箭头)

    clip_image009

    关联、聚合、组合之间的关系:

    a) 聚合、组合都是关联关系的一种:其关系强弱为 关联<聚合<组合

    b) 聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;

    c) 聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

    d) 关联的两个对象之间一般是平等的,例如你是我的朋友,聚合则一般不是平等的,例如一个公司包含了很多员工,其实现上是差不多的。

    e) 关联举例: 我与朋友

    聚合举例: 雁群与大雁/国与家

    组合举例: 大雁与翅膀

    参考:

    https://blog.csdn.net/qq_17368865/article/details/79679599

    https://www.cnblogs.com/alex-blog/articles/2704214.html

  • 相关阅读:
    Microsoft Enterprise Library 5.0 系列(二) Cryptography Application Block (初级)
    Microsoft Enterprise Library 5.0 系列(五) Data Access Application Block
    Microsoft Enterprise Library 5.0 系列(八) Unity Dependency Injection and Interception
    Microsoft Enterprise Library 5.0 系列(九) Policy Injection Application Block
    Microsoft Enterprise Library 5.0 系列(三) Validation Application Block (高级)
    软件研发打油诗祝大家节日快乐
    从挖井的故事中想到开发管理中最容易忽视的几个简单道理
    ITIL管理思想的执行工具发布
    管理类软件设计“渔”之演化
    20070926日下午工作流与ITILQQ群 事件管理 讨论聊天记录
  • 原文地址:https://www.cnblogs.com/NeilZhang/p/10278995.html
Copyright © 2011-2022 走看看