UML 类关系--聚合 组合 关联 依赖

经常用到的四种关系,容易搞混,记一下。

耦合度:逐渐增强

1. 依赖(Dependency)
   

语义:类A要完成某个功能引用了类 B,则类 A 依赖类 B。
   类比:学生依赖电脑,用电脑完成工作
    表现形式:类A的
    某个成员函数的返回值、
    形参、
    局部变量
    或静态方法的调用了类 B,则表示类 A 依赖类 B。
2. 关联(Association)
  

语义:类 A 的每个实例都需要类 B 的存在
    类比:学生和老师,一个学生必须要有老师
    表现形式:成员变量,即 B 成为 A 的成员变量
3. 聚合(Aggregation)
  

语义:表示集体和个体的关系
    类比:大雁和雁群,一个雁群由多只大雁组成
    表现形式:成员变量,而且类 B 一般作为类 A 构造方法的形参
4. 组合(Composition)
  

语义:和关联类似,表示的是个体和(个体的)部分的关系,比关联所表示的关系更紧密
    类比:大雁和大雁的翅膀。一个雁群里可以少一只大雁,但是一只大雁一个翅膀也不能少。
    表现形式:成员变量,而且类 B 一般在 类 A 中进行初始化,也就是说,类 B 无法独立存在,必须依赖于类 A。

原文地址:https://www.cnblogs.com/ainsliaea/p/11354614.html

时间: 2024-11-05 14:58:19

UML 类关系--聚合 组合 关联 依赖的相关文章

UML类关系:依赖,关联,聚合和组合

UML图示例:(可使用StartUML来画图,小巧^_^) http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html 聚合:表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体.如电脑和鼠标,就可以用一下图形表示: 组合:表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在.组合关系的“部分”,是不能在整体之间进行共享的.如人和眼睛的关系:不过,如果你要说,眼睛可以移植,是

UML类关系

一.依赖关系(Dependence) 依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类. 依赖关系(Dependency) 是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数. 在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方. 1 public class Driver 2 { 3 public void d

UML类图关系全面剖析

UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针.对象引用本身就是有向的,更适合表达我们所讨论的那种关系.所以这

UML类图关系大全

UML类图关系大全 1.关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针.对象引用本身就是有向的,更适合表达我们所讨论的那种关系.所以这种关系在设计的时候比较少用到,关联一般都是有向的. 使用ROSE 生成的代码是这样的: class C1 ...{ public:     C2* th

UML类图关系表示

UML 之 C++类图关系全面剖析 分类: 软件设计与架构2008-10-16 08:52 5165人阅读 评论(3) 收藏 举报 umlc++borderclasscblog UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法. 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系

UML类图关系大全【转】

UML类图关系大全 1.关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法.在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针.对象引用本身就是有向的,更适合表达我们所讨论的那种关系.所以这种关系在设计的时候比较少用到,关联一般都是有向的.使用ROSE 生成的代码是这样的: class C1 ...{public:    C2* theC2;};

UML类图符号简介

1. 类(Class):使用三层矩形框表示.  第一层显示类的名称,如果是抽象类,则就用斜体显示.  第二层是字段和属性.  第三层是类的方法.  注意前面的符号,'+'表示public,'-'表示private,'#'表示protected.  2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示.  第一行是接口名称.  第二行是接口方法.  3. 继承类(extends):用空心三角形+实线来表示.  4. 实现接口(implements):

UML类图JAVA代码实现

类图是最常用的UML图,它用于描述系统的结构化设计.其中包括类关系以及与每个类关联的属性及行为.类图能出色地表示继承与合成关系.为了将类图作为一种高效的沟通工具使用,开发者必须理解如何将类图上出现的元素转换到Java中.下面来进一步探索这一转换过程 元素 在后面的小节中,分别讲解了类图的各个元素及其在Java中相应的表示.我会列出元素名,后续简短的代码片断和一幅图来表示元素在类图上的样子.每一节的最后简要总结了该元素 类(Class) 类(图A)是对象的蓝图,其中包含3个组成部分.第一个是Jav

五分钟读懂UML类图

平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道.实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧: 一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法. 那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符