组合专题提供组合的最新资讯内容,帮你更好的了解组合。
聚合与组合   组合 聚合 定义 几个独立部分组成的整体 分散的聚到一起 标识 实心菱形加实线箭头表示 空心菱形加实线箭头表示 整体和部分的关系强弱程度 强 弱 与生存期的关系 部分对象与整体对象具有统一的生存期,一旦删除了整体对象,同时也就删除了部分对象。 部分对象与整体对象的生存期无关,一旦删除了整体对象不一定就删除了部分对象。 图 例子 你和你的心脏之间是组合关系 你和你买的书之间是聚合关系
首先要明白:聚合,组合是关联的特殊形式,之所以出现这两个名词,只是为了表达的更加具体、明白。 UML的创始人就说过,“UML只是为了沟通,它本身的形式并不重要”!!! 所以要达到这个目标,就要将关系描述的尽可能的具体、明白! 关联: 比较泛的感念,两个类之间只要扯上关系都可以看成是“关联”;然而这一词不太能准确表达其更精准的含义,或者说,要表达清楚的话,需附加很多信息,比较复杂。 为此提出如下两个
关联(association):  这是一种很常见的关系,这种关系在我们的生活中到处可见,如:一张订单对象一个客户,关联可以是单端关联也可以是多端关联。如:用户和身份证就是双向关联的。关联可以叫做持有对方引用。(用一条实线表示,可以还箭头) 泛化(generalization):这里的泛化可以理解为面向对象中的继承 依赖(dependency):是指两个对象间有依赖关系,如果一端修改了,那么依赖他
文章来源:http://hi.baidu.com/szbdyy/item/57c51a3ab94340c51b9696a7 1.实例化(依赖) A将B作为局部变量进行使用. 程序1 void A::foo() {     B b;     b.SomeMethod(); } 2.关联 A与B存在一定的关系. 这里只考虑单向导航. 关联在代码中有多种表现形式. 第一种, 作为参数: 程序2 void
UML,全称:Unified Modeing Language,关于UML的历史和详细描述可以参考《UML参考手册》。UML主要是由一些视图组成,包括静态视图(static view),用例视图(use case view),活动视图(Active view)。对于开发人员来说,更重要的是静态视图里面的类图(class view)和交互视图中的顺序视图(sequence diagram)。 类图可
UML的构造块包含3种:  (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图 事物是对模型中最具代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。     (2) 关系(4种) UML 中类与类, 类与接口, 接口与
时间久了不用了,慢慢慢慢也就淡忘了,写一篇博客记录下 借来一张《大话设计模式》图: 类的关系一般分为泛化(继承,实现),依赖,关联,聚合,组合 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;  实现 指的是一个
感谢文章作者:http://blog.163.com/zhouchunping_99/blog/static/783799882011629104717775/ <1>依赖 依赖关系用虚线加箭头表示,如图所示: 上图表示:Animal类依赖于Water类(动物依赖于水)。 依赖是类的五种关系中耦合最小的一种关系。因为依赖关系在生成代码的时候,这两个关系类都不会增加属性。这种微弱的关系可以用类之间的
依赖,关联,聚合和组合关系由弱到强 generalization 2.实现realization. 二、依赖,关联,聚合和组合 1.实例化(依赖) A将B作为局部变量进行使用. 程序1 void A::foo() {     B b;     b.SomeMethod(); } 2.关联 A与B存在一定的关系. 这里只考虑单向导航. 关联在代码中有多种表现形式. 第一种, 作为参数: 程序2 vo
<1>依赖   依赖关系用虚线加箭头表示,如图所示:  上图表示:Animal类依赖于Water类(动物依赖于水)。  依赖是类的五种关系中耦合最小的一种关系。因为依赖关系在生成代码的时候,这两个关系类都不会增加属性。这种微弱的关系可以用类之间的相互了解的程度来说明。(下图为代码生成图)  由上图可见生成的代码中Animal类的属性中没有增加Water类。那么Animal类如何使用Water类呢,
UML定义的关系主要有六种:依赖、泛化、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系: 一、泛化 泛化(图1)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接
 参考 :blog   依赖关系 : 在Java语言中体现为局域变量、方法的形参,或者对静态方法的调用。 class Driver { //使用形参方式发生依赖关系 public void drive1(Car car){ car.run(); } //使用局部变量发生依赖关系 public void dr
聚合:表示两个对象之间是整体和部分的弱关系,成员对象可以脱离整体对象而独立存在。has-a关系 组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。部分与整体具有统一的生存期。contains-a关系 代码中体现为: 部分类对象(子对象)以类属性的形式出现在整体类的定义中 组合: class A { }; class B {     A a1, a2;
在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)   1.泛化(Generalization) 【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种. 【箭头指向】:带三
UML定义的关系主要有:泛化、实现、依赖、关联、聚合、组合,这六种关系紧密程度依次加强,分别看一下 1、泛化 概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在程序中是通过继承类实现的。比如狗是对动物的具体描述,在面向对象设计的时候一般把狗设计为动物的子类。 表示方法:空心三角形箭头的实线,子类指向父类 2、实现 概念:实现是一种类与接口的
类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。接下来我们就来谈谈类图的组成,在下一篇中我们将讨论一下类图之间的关系。 一、类图的组成 1. 普通类 上图就是一个UML的普通类图,从上图我们看出,一个UML通常由三部分组成。 第一部分是类名:每个类都必须有一个名字,类名是一个字符串。 第二部分是类的属
转载地址: http://www.cnblogs.com/shanwenbin/archive/2012/10/24/2737229.html  聚合和组合的区别  聚合关系是“has-a”关系,聚合的整体与部分间关系较弱, 其代表部分的对象与代表整体的对象生存期无关,删除了代表整体的对象不一定会删除代表部分的对象.  组合关系是“contains-a”关系,组合的整体与部分间关系较强, 其代表部
  最近在做渲染部分的重构工作.单靠脑袋想很难清晰,于是想到了先画类图, 之后在类图上做修改,直接导出结论之后实现.   画类图的时候,关于依赖和关联,以及聚合和组合总是不清晰.现在有了结论,记录下来,以后再糊涂直接看自己记录下来的.   依赖:A依赖B,A的方法中需要类B作为参数.如: void A::DoSth(B * pB) { pB->DoSth() ; }  关联:A关联B,B作
类之间的关系种类:Realization(实现), Generalization(泛化),Dependency(依赖)、Association(关联)、Aggregation(聚合)、Composition(合成或组合)。 其中,Aggregation(聚合)、Composition(合成)属于Association(关联),是特殊的Association关联关系。 实现(Realization)
说完了关联,就必须说一下聚合(Aggregation)和组合(Composition)。这三者的区别,很多人并不是很清楚。在实际的设计中也经常可以看到乱用的情况。希望本文能够解决这个问题。 聚合(Aggreation) 聚合是一种特殊形式的关联,而不是一个独立的概念。简单的说判断一个关联是否是聚合,有两个条件: 是否可以看作是部分和整体的关系。    2. 是否存在某些操作和属性可以从整体传播到部