`
wsmajunfeng
  • 浏览: 498107 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

(转)详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)

 
阅读更多

大话设计模式上的一个图,我用EA画出来的:
 大话设计模式类图

UML中的6大关系相关英文及音标:

 依赖关系

 

dependency

 

[di'pendənsi]
 关联关系

 

association

 

 [ə,səuʃi'eiʃən]
 聚合关系

 

aggregation

 

 [ˌægrɪˈgeɪʃən]
 组合关系 composition  [,kɔmpə'ziʃən]
 实现

 

realization

 

 [,ri:əlɪ'zeɪʃən]
 泛化

 

generalization

 

 [,dʒenərəlɪ'zeɪʃən]

 

 

UML中的6大关系简单解释:

  1. 关联:连接模型元素及链接实例,用一条实线来表示;
  2. 依赖:表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示;
  3. 聚合:表示整体与部分的关系,用一条实线加空心菱形来表示;
  4. 组成:表示整体与部分的有一关系,用一条实线加实心菱形来表示;
  5. 泛化(继承):表示一般与特殊的关系,用一条实线加空心箭头来表示;
  6. 实现:表示类与接口的关系,用一条虚线加空心箭头来表示;

注意:泛化关系和实现关系又统称为一般关系;
总之:一般关系表现为继承或实现(is a),关联关系、聚合关系、合成/组合关系表现为成员变量(has a),依赖关系表现为函数中的参数(use a);

转自:http://www.cnblogs.com/ForEverKissing/archive/2007/12/13/993818.html

UML中的6大关系详细说明:

1、关联关系:
  含义:类与类之间的连结,关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义
体现:在C#中,关联关系是通过成员变量来实现的;
方向:双向或单向;
图示:实线 + 箭头;箭头指向被关联的类;
举例:“渔民”需要知道“天气”情况才能够出海
   //公司关联雇员
public class Company
{
    private Employee employee;
    public Employee GetEmployee()
    {
        return employee;
    }
    public void SetEmployee(Employee employee)
    {
        this.employee = employee;
    }
    //公司运作   
    public void Run()
    {
        employee.StartWorking();
    }

}

//A关联B
class A
{
    B b = new B();
}
class B
{
}

2、依赖关系:
  含义:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系;
体现:在C#中体现为局部变量、方法/函数的参数或者是对静态方法的调用;
方向:单向;
图示:虚线 + 箭头;
举例:人依赖于水和空气;汽车依赖汽油
    //人划船,人依赖于船
public class Person
{
    //划船
    public void Oarage(Boat boat)
    {
        boat.Oarage();
    }
}

//A依赖于B
class A
{
    public void Function(B b)
    { }
}
class B
{
}

 

3、聚合关系:
  含义:是关联关系的一种,是一种强关联关系;聚合关系是整体和个体/部分之间的关系;关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;
体现:C++中,聚合关系通过将被聚合者的(数组)指针作为内部成员来实现的;
方向:单向;
图示:空心菱形 + 实线 + 箭头;箭头指向被聚合的类,也就是说,箭头指向个体/部分;
举例:鸭群与鸭子具有聚合关系;汽车由引擎、轮胎以及其它零件组成,因为汽车坏掉了,没有坏掉的引擎,轮胎和其他零件还可以继续使用。

4、组合关系:
  含义:它也是关联关系的一种,但它是比聚合关系更强的关系.组合关系要求聚合关系中代表整体的对象要负责代表个体/ 部分的对象的整个生命周期;组合关系不能共享;在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合 关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;
体现:在C#中,组合关系是通过成员变量来实现的;
方向:单向;
图示:实心菱形 + 实线 + 箭头;箭头指向代表个体/部分的对象,也就是被组合的类的对象;
举例:一个人由头、四肢、等各种器官组成,因为人与这些器官具有相同的生命周期,人死了,这些器官也挂了;

5、泛化关系:
  含义:它表示一个更泛化的元素和一个更具体的元素之间的关系;也就是通常所说的类的继承关系;
体现:在C#中,泛化关系通过类的继承来实现的;
方向:单向;子类继承父类;
图示:空心箭头 + 实线;箭头指向父类;
举例:动物下面可以分为哺乳动物,脊椎动物,爬行动物等

6、实现关系:
  含义:它指定了两个实体之间的一份合同;即:一个实体定义一份合同,另外一个实体则保证履行该合同;
体现:在C#中,实现关系通过类实现接口来实现的,即:一个类实现某个接口;
方向:单向;子类实现接口;
图示:空心箭头 + 虚线;箭头指接口向接口;
举例:唐老鸭(对象)会说话(接口),因为一般鸭子不会说话,所以不会将说话这个方法给一般的鸭子带上;超人(对象)会飞(接口)

转自:http://www.cnblogs.com/aicro/archive/2010/08/23/1806584.html

UML中的6大关系参考:

你是我的玫瑰-类关系阐微
http://www.cnblogs.com/zjzkiss/archive/2007/05/06/736725.html

UML中关联、依赖、聚集等关系的异同
http://www.cnblogs.com/ForEverKissing/archive/2007/12/13/993818.html

UML 类与类之间的关系
http://yanwenhan.javaeye.com/blog/149450

类间的关系
http://www.cnblogs.com/floodpeak/archive/2008/02/27/1083533.html

UML解惑:图说UML中的六大关系
http://developer.51cto.com/art/201004/194204.htm

大话设计模式

分享到:
评论

相关推荐

    UML中依赖泛化关联实现聚合组合的Java实现

    ### UML中依赖、泛化、关联、聚合与组合的Java实现详解 #### UML基础知识概览 统一建模语言(UML)作为一种图形化的标准化建模语言,为软件开发提供了强大的可视化工具,帮助开发者理解、设计和记录软件系统。UML...

    UML2.0中的14种图详解

    UML 2.0 中的 14 种图详解 UML(Unified Modeling Language)统一建模语言,是面向对象软件的标准化建模语言。UML 2.0 共包括 14 种图形,大致分成静态图和动态图两类。最常用的 UML 图包括:用例图、类图、组件图...

    UML关系

    在本篇文章中,我们将深入探讨UML中的几种主要关系,包括关联、依赖、泛化、实现以及组合和聚合。 1. **关联关系**: 关联是UML中最常见的一种关系,表示两个或多个类之间的结构联系。关联可以是单向或双向的,也...

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

    在UML中,依赖关系用带箭头的虚线表示,箭头指向被依赖的类。例如,类`DependencyAndRelation`通过成员变量、方法参数和局部变量使用了`Dependency`, `Relation`, `Study` 和 `Eat` 类。 2. **关联(Association)**...

    UML类图与类的关系详解

    - **定义**:描述关联、聚合或组合关系中的一端可以与多少个实体实例相连接。 - **示例**:在示例中,一个割接通知可以关联多个故障单,这种关系可以通过多重性表示,例如`0..*`。 ### 实例分析 根据给定的示例,...

    UML类图说明类图关系

    在UML类图中,依赖关系通常用带箭头的虚线表示。 4. **泛化(Generalization)**:也称为继承,表示一个类(子类)从另一个类(父类)继承属性和方法的过程。在UML类图中,泛化关系用实线加空心三角箭头表示。 - *...

    UML类图详解,更深入的理解类图

    UML类图关系分为关联、聚合/组合、依赖、泛化(继承)四种。 1. 关联 关联关系是类图中最基本的关系,它描述了类之间的相互关系。关联关系分为双向关联、单向关联、自身关联三种。 * 双向关联:C1-C2,指双方都...

    UML-详解建模实例

    - **聚合(Aggregation)与组合(Composition)**: 特殊的关联,表示整体与部分的关系,组合具有更强的生命周期控制。 - **依赖(Dependency)**: 一个类的实现或行为依赖于另一个类。 - **泛化(Generalization...

    UML-类图详解.doc

    包括关联、聚合、组合、泛化、依赖等关系。 * 关联:是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。 * 聚合:是一种特殊的关联,聚合表示整体与...

    UML各种图详解.doc

    组合聚合中,部分的生命周期依赖于整体,如公司与部门的关系。组合聚合用实心菱形表示,而基本聚合用空心菱形表示。 序列图是UML中表示对象间交互顺序的图表,关键元素包括: 1. 生命线:表示对象在时间轴上的存在...

    UML的关系,基础

    在UML中,依赖图可以用来展示系统中各组件间的依赖关系,帮助我们识别和管理这些关系,确保系统设计的稳定性和可维护性。 8. **关联类(Association Class)** 当关联关系包含额外的信息时,可以引入关联类来封装...

    UML中文教材-第四章

    类之间的关系包括关联、聚合、组合、依赖、泛化和实现。其中,关联表示两个或多个类之间的连接,聚合和组合是特殊的关联,分别表示整体与部分的关系,区别在于组合关系中部分对象的生命期与整体紧密相连;依赖关系...

    UML课后题问题详解.doc

    类图中的关联关系可以有多种类型,如泛化表示继承,实现关系规定接口实现,关联表示对象之间的联系,聚合和组合是特殊类型的关联,表示整体与部分的关系,其中组合更为紧密。 序列图和协作图则用于描述对象之间的...

    UML类图.docx

    在UML类图中,不同类型的关系反映了不同强度的联系,其强度排序大致为:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。 #### 五、总结 UML类图是软件设计和开发过程中的重要工具之一,通过图形化的方式直观地展示了...

    uml术语1.txt

    依赖关系表示一个类使用了另一个类的功能,但并不意味着它拥有这个类的对象。例如,一个用户界面可能依赖于数据库接口进行数据读写操作,但这并不意味着用户界面类拥有数据库类的实例。 #### 6. Realization (实现)...

    UML 九种视图总结

    UML 中定义了几种不同类型的关系,包括泛化、依赖、关联、实现等,这些关系帮助我们理解和描述系统中的类和对象如何相互作用。 #### 二、UML 类图中的关系 ##### 2.1 泛化 (Generalization) - **定义**:泛化是...

    UML 经典教程 统一建模语言

    - **关系**:UML中定义了四种基本关系类型:关联、依赖、泛化和实现。 - **关联**(Association):描述了对象之间的静态连接,可以是双向的也可以是单向的。 - **依赖**(Dependency):表示两个模型元素之间的依赖...

    UML类图说明.pdf

    **UML类图详解** UML(统一建模语言)是一种通用的建模语言,用于可视化软件系统的结构和行为。类图是UML中的一个重要概念,它提供了对系统静态结构的表示,帮助开发者理解系统中类、接口以及它们之间的关系。在本...

Global site tag (gtag.js) - Google Analytics