`
darrenzhu
  • 浏览: 783662 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UML中的关系详解

阅读更多
依赖,关联,聚合,组合 阐述的是对象之间一种由弱到强的关系
弱                                      强
---------------------------------------->
UML中关系的符合定义



下面的的类图给出了各种关系的案例,图截取自《大话设计模式》


泛化(Generalization)
父类子类之间的关系,泛化关系用空心三角形 + 实线箭头来表示。


实现接口
实现接口用空心三角形 + 虚线箭头来表示。


关联
当一个类“知道”另一个类时,并且两个类是平等的,无部分-整体之类的特殊关系时,可以用关联(association),通常表现为一个类是另一个类的属性,关联关系用实线或实线箭头表示。对于企鹅和气候两个类,企鹅与气候有很大关联,我们不去讨论为什么北极没有企鹅,为什么它每年要长途跋涉,总之,企鹅需要“知道”气候的变化,需要了解“气候”的规律,它们之间就是一种关联关系。



聚合(Aggregation)
表示类之间的关系是“整体-部分”的关系,但表达的是一种弱的“拥有”关系。聚合关系用空心的菱形 + 实线箭头来表示。


组合(Composition)
是一种特殊的聚合关系,是一种强的“拥有”关系,每个部分只能属于一个整体,部分和整体生命周期一样(如果说成整体和部分生命周期一样应该是不正确的,不要说反了)。
组合关系用实心的菱形 + 实线箭头来表示,关系的两端还有数字,称为基数,表示关系的这一端的类可以由几个实例,很显然鸟应该有2个翅膀,如果一个类可以由无数个实例,用n来表示。关联关系,聚合关系也是可以由基数的。


依赖(Dependency)
对象之间的临时关系,临时性体现在不超越方法的周期。简单的说,在方法使用到的,如参数类,就一定是依赖关系。在类图中,使用依赖线描述对象之间的全局变量,参数变量,局部变量和静态方法(对其他类的静态方法加以调用)的依赖。

一个事物(独立事物)发生变化会影响使用它的另一个事物(依赖事物),但反之则不然。箭头指向独立事物。

动物需要水,氧气以及食物等,也就是说动物依赖水,氧气,它们之间是依赖关系,用虚线箭头表示。




组合关系是一种强类型关系,表示部分与整体共存亡,整体和部分有一个不存在,另一个也就不应存在,因此类与类之间的耦合度比较高,而聚合关系表示的是一种弱类型关系,整体和部分都可以单独存在。
案例:鸟儿和鸟儿翅膀之间的关系为组合关系,雁群和大雁之间为聚合关系。

另外两个比较重要的关系是关联和依赖:
关联:简单的可以认为,如果一个类作为了另外一个类的属性,那一定是关联关系。但你要知道,聚合是一种特殊的关联,而组合又是一种特殊的聚合。一般的关联我们认为是平级的、无整体部分关系的,如朋友关系。

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

聚合和组合的区别则在语义和实现上都有差别,组合的两个对象之间其生命期有很大的关联,被组合的对象是在组合对象创建的同时或者创建之后创建,在组合对象销毁之前销毁。一般来说被组合对象不能脱离组合对象独立存在,而且也只能属于一个组合对象,例如一个文档的版本,必须依赖于文档的存在,也只能属于一个文档。聚合则不一样,被聚合的对象可以属于多个聚合对象,例如一个员工可能可以属于多个公司。
  • 大小: 33.8 KB
  • 大小: 277.4 KB
  • 大小: 52.3 KB
  • 大小: 39 KB
  • 大小: 57.1 KB
  • 大小: 35.5 KB
  • 大小: 134.8 KB
  • 大小: 86.4 KB
分享到:
评论

相关推荐

    UML类图与类的关系详解

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

    UML类图各种关系详解

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

    UML用例图中关系详解

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

    uml中的关系

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

    UML类图说明类图关系

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

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

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

    UML组件图详解

    在UML1.1中,一个组件表现了实施项目,如文件和可运行的程序。不幸地,这与组件这个术语更为普遍的用法、指象COM组件这样的东西相冲突。随着时间的推移及UML的连续版本发布,UML组件已经失去了最初的绝大部分含义。...

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

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

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

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

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

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

    UML类图详解

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

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

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

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

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

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

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

    UML简明教程

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

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

    本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领...

    uml建模之类图.pptx

    本ppt详解了uml九类图中的类图,对类图的基本概念进行描述,以及对类图之间的关联关系进行描述并举例说明

Global site tag (gtag.js) - Google Analytics