UML图 依赖、关联、聚合、组合

UML,全称:Unified Modeing Language,关于UML的历史和详细描述可以参考《UML参考手册》。UML主要是由一些视图组成,包括静态视图(static
view),用例视图(use case view),活动视图(Active view)。对于开发人员来说,更重要的是静态视图里面的类图(class view)和交互视图中的顺序视图(sequence
diagram)。

类图可以帮助我们了解一个系统的结构,而类图除了需要描述单独的类名称、属性和操作外,我们还需要描述类之间的联系。在UML类图中,类与类之间的关系用不同的连线表示。类之间的关系有继承、依赖、关联、聚合组合

  • 1. 继承(泛化关系)

指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己的新功能的能力,继承是类与类之间最常见的关系。如下图所示,一般有一条带空心三角形的线表示继承关系。

继承

代码实例

// A,B,C(子类) 都继承自Base(父类)
class Base {...};
class A : public Base {...};
class B : public Base {...};
class C : public Base {...};
  • 2. 依赖

大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。是一种比较弱的关系,存在偶然性和临时性,一般表现形式为:

  • A类是B类中的(某种方法的)局部变量;

  • A类是B类方法当中的一个参数;

  • A类向B类发送消息,从而影响B类发生变化;

其UML图为(一条带箭头的虚线由依赖一方指向被依赖方)

依赖

代码示例:

class A {...};
class B {
public:
    fuc(A* a);
};
  • 3. 关联

是类之间的一种语义联系(较弱)。它使一个类知道另一个类的属性和方法。关联可以有方向,可以是单向关联,也可以是双向关联。这种关系比依赖稍强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的,表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;

UML图中用一条实线箭头表示:

关联

示例代码:

class A {...};
class B {A* a;};
  • 4. 聚合

是整体与部分的关系,是has-a的关系,他们可以有各自的生命周期,部分可以属于多个整体对象。聚合关系与关联相比,关联一种平等的关系(如你和你的朋友之间),而聚合是一种不平等的关系(你和你的书之间)。

UML图如下:

示例代码:

class A {...};
class B {A* a;};

聚合的代码表现和关联一致,只能从语义上区分了。

  • 5. 组合

是整体与部分的关系,是constains-a的关系,这种关系比聚合更强,部分与整体之间由同生共死的关系,组和对象一旦删除,也就意味着部分的删除(如你和你的心脏之间)。

UML图如下:

组合

代码示例:

class A {...};
class B {A a;};

组合和聚合在代码层面上有较大的差异,上例组合关系中直接实例化了A类的一个对象a,那么B类的一个对象消亡的同时也意味着对象a的消亡,所以是一种同生共死的关系。

UML图 依赖、关联、聚合、组合

时间: 2024-11-29 04:09:41

UML图 依赖、关联、聚合、组合的相关文章

UML关系(泛化,实现,依赖,关联(聚合,组合))

UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图 事物是对模型中最具代表性的成分的抽象:关系把事物结合在一起:图聚集了相关的事物. (2) 关系(4种) UML 中类与类, 类与接口, 接口与接口这间的关系有: 泛化(generalization) 关系, 关联(association)关系( 关联,

UML类图及依赖,泛化,关联,聚合,组合,实现

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依赖关系(Dependence):假设A类的变化引起了B类的变

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

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

AJPFX关于java的依赖 关联 聚合的关系解释

依赖:  两个相对独立的系统,当一个系统要构筑另一个系统的实例,或者依赖另一的服务时,这两个就是依赖关系.比如自行车和打气筒之间就是依赖关系.代码表现形式如下:    public class A{        public void mehtod(B b)          {             b.writer();          }     }这里的A调用了B,但是并不是B b=new B():那种实例化的调用.他依赖的是现在已经存在的一个对象.而不是实例化的一个新的对象.关联

UML中常见关系详解(泛化、实现、依赖、关联、组合、聚合)

UML中类与类,已经类与接口,接口与接口的关系有:泛化(generalization),关联(association),依赖(dependency),实现(realization)这几种. 泛化(generalization)关系时指一个类(子类.子接口)继承另外一个类(称为父类.父接口)的功能,并可以增加它自己新功能的能力,继承是类与类或者接口与接口最常见的关系,在Java中通过关键字extends来表示. 实现(realization)是指一个class实现interface接口(一个或者多

StarUML类图相关——关联、聚合、组合、泛化、依赖、实现

在阅读设计模式相关的书籍,或者其他一些项目.相关博客等等,经常会遇到类图,它对于一个类的信息,如变量.方法及其可见性,类与类(接口)之间的继承关系.依赖关系.聚合关系.组合关系等,都可以比较形象得当地描述出来.这样有用的工具,还是需要稍微掌握了解下,也方便自己的应用和描述.因此就有了这篇搬运工文档 一.StarUML下载和入手 1.先捧出StarUML官网StarUML--The Open Source UML/MDA Platform. 2.入手简单的UML开发可以参考:使用StarUML创建

UML依赖,关联,组合,聚合,继承,实现的关系

这几天在看netty的源码想根据源码把netty的UML架构图跟时序图画出来,所以就复习了一下大学时代的一些UML基础知识,首先,我们要搞清楚以下几个概念: 继承:这个就不要多说了,写过java代码的人一般都很容易理解继承这个概念. 实现:这个可能有些初学者有些模糊,因为大家一般会认为实现跟继承是一样的概念,在java里面 继承使用的关键字是extends而实现使用的关键字是implements.说到这里我想大家都明白了吧. 依赖:在理解这个概念之前我们先去百度百科里面看一下依赖的中文解释:依靠

java 面向对象基础 UML图 构造方法 对象 参数传值 关联关系 依赖关系

UML图 UML(Unified Modeling Language Diagram,UML),它是一个结构图,用来描述一个系统的静态结构.一个UML中通常包含类(class)的UML图,接口(Interface)的UML图以及泛化关系(Generalizaiton)的UML图.关联关系(Association)的UML图.依赖关系(Dependency)的UML图和实现关系(Realization)的UML图. 第一层是名字层,如果类的名字是常规字形,表明该类是具体类, 如果类的名字是斜体字形