`
tify
  • 浏览: 14586 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

UML图关系详解

 
阅读更多

UML类图关系简介

依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。UML中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。

类属(Generalization):通常所说的继承(特殊个体iskindof一般个体)关系,不必多解释了。UML中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。

实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,BrealizeA。这个关系最常用于接口。UML中用空心空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。

关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。UML中用实线表示Dependency关系,箭头指向被依赖元素。

聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体hasa部分)的关系。UML中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。

组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。UML中用带实心心菱形头的实线表示Composition关系,菱形头指向整体。

UML类图关系详解

后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。

依赖(Dependency)

实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。

图D

关联(Association)

UML类图关系中实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。在Java中,关联(图E)转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其他修饰符。多重性(Multiplicity)修饰符暗示着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个Employee。

图E

聚合(Aggregation)

聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。

关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。

图F

合成(Composition)

UML类图关系中合成(图G)是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。

Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。

图G

泛化(Generalization)

UML类图关系中泛化(图H)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。

图H

实现(Realization)

实例(图I)关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。

图I

读后感:通过java代码和UML可以很清楚的理解这几种关系,关联分3种这比较搞,主要还是要搞清楚依赖,关联,泛化和实现这4种关系


分享到:
评论

相关推荐

    UML类图与类的关系详解

    UML类图与类的关系详解,UML类图与类的关系详解,UML类图与类的关系详解

    UML类图各种关系详解

    UML类图各种关系详解 包括 继承 实现 聚合 等等 一张图道出类之间的各种关系 直观容易

    UML用例图中关系详解

    UML中用例图:包含、扩展、泛化三种关系详解。在设计的时候可以参考一下。

    UML类图说明类图关系

    大家知道,UML类图之间的关系确实难以理解,而诸多教材中的解释又各不相同;我是查阅了了很多教程后,总结出的相对具有共性的解释了; 实例介绍了类图之间的关系及面向对象的相关概念 同时,介绍了EA下类图各关系的...

    UML组件图详解

    图的目的组件图的主要目的是显示系统组件间的结构关系。在UML1.1中,一个组件表现了实施项目,如文件和可运行的程序。不幸地,这与组件这个术语更为普遍的用法、指象COM组件这样的东西相冲突。随着时间的推移及UML的...

    利用UML序列图设计Java应用程序详解

    要利用UML设计Java应用程序,仅仅使用类图来描述这些静态关系,利用可视化工具,要实现Java应用程序的代码自动生成,是远远不够的。我们还必须描述各种类相互之间的协作关系、动态关系,如时间序列上的交互行为。...

    2024年UML统一建模语言–用例图详解

    用例图【2024年UML统一建模语言--用例图详解简介】 内容概要: 本文为初学者提供了一个全面的学习指南,通过通俗易懂的语言和幽默故事性,详细介绍了UML统一建模语言中的用例图。文章以初学者容易理解的方式,解释了...

    uml中的关系

    UML关系的详解L,是初学者学习UML的必备教程,以及工具书!

    利用UML序列图设计Java应用程序详解 

    UML已成为面向对象设计的标准图形化工具,在UML定义的各种图中,本文主要讲解序列图。 Java应用程序由许多类所构成,是Java实现面向对象应用程序的核心。类图主要描述Java应用程序中各种类之间的相互静态关系,如类...

    UML教程 UML的一切知识都在这里.zip

    UML教程 UML的一切知识都在这里.zip 作为JAVA,C#架构师程序员 当然要会画UML图了 UML共五类(共9种)图 UML详解 UML常用图的几种关系 UML的一切知识都在这里

    设计模式存在哪些关联关系,六种关系傻傻分不清--- UML图示详解.doc

    设计模式存在哪些关联关系,六种关系傻傻分不清--- UML图示详解.doc

    2024年手把手带你学UML建模用例图(Use Case Diagram)详解

    《2024年手把手带你学UML建模用例图(Use Case Diagram)详解》是一篇面向初学者的全面指南,以易懂的语言介绍了用例图的基础知识。文章从UML的基本概念讲起,逐步引导读者学习用例图的基本元素(如参与者、用例、关系...

    Ext 深入剖析,使用UML对Ext类关系解读

    花费半年心血研究解读总结。包含了Ext的核心类解析,Ext对象原理,Ext事件模型,Ext布局模型,AJAX原理,Ext数据模型的本质原理;UML图例详解。

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    15.2.4UML图的种类 15.3小结 第16章用例图 16.1认识用例图 16.1.1为什么需要用例图 16.1.2什么是用例图 16.2详解用例图 16.2.1系统边界 16.2.2参与者 16.2.3用例 16.2.4箭头 16.2.5注释 16.2.6用...

    UML类图详解

    类图设计介绍,程序设计,程序开发所所需。

    UML简明教程

    UML简明教程,包括了UML背景知识,各种关系视图详解等等

Global site tag (gtag.js) - Google Analytics