`
不复记忆
  • 浏览: 155617 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类

区分 UML 类图中的几种关系

阅读更多

   UML 类图中的 ”关联关系(association) “、”聚合关系(aggregation) “、”合成关系 (compostion)“ 和”依赖关系 (dependency)“ 不是很容易区分清楚,《UML distilled》 对这几个关系也没有解释的特别清楚。近日翻阅《Java 与模式》,发现其中对这些关系有较为清晰的描述,特摘录如下:


     1、关联关系 (association):     1、关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。
     2、关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
     3、在 Java 或 c++ 中,关联关系是通过使用成员变量来实现的。

class 徒弟
{
};

class 唐僧
{
protected:
           list<徒弟>   tdlist;
};




2、聚合关系 (aggregation):    

     1、聚合关系是关联关系的一种,是强的关联关系。
     2、聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
     3、聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
      4、关联与聚合仅仅从 Java 或 C++ 语法上是无法分辨的,必须考察所涉及的类之间的逻辑关系。

class 引擎
{
};

class 轮胎
{
};

class 汽车
{
protected:
     引擎   engine;
     轮胎   tyre[4];
};



3、合成关系 (composition):      

       1、合成关系是关联关系的一种,是比聚合关系还要强的关系。
       2、它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

class 肢
{
};

class 人
{
protected:
      肢    limb[4];
};





4、依赖关系 (dependency):      

       1、依赖关系也是类与类之间的联结
       2、依赖总是单向的。
       3、依赖关系在 Java 或 C++ 语言中体现为局部变量、方法的参数或者对静态方法的调用。

public class Person
{
      public void buy(Car car)
      {
          ...
      }
}


5、总结:

      1、不同的关系采用不同的 UML 图例
2、对于聚合关系、合成关系,由于都是关联关系的一种,因此在不确定的情况下,可以以关联关系来描述它们。

分享到:
评论

相关推荐

    UML类图几种关系的总结

    UML类图几种关系的总结

    六大UML类图以及关系

    本文向大家简单介绍一下UML类图关系,UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。希望本文的介绍对你的学习有所帮助。

    JDK UML 类图大全

    JDK UML 类图大全 JDK UML 类图大全 JDK UML 类图大全

    计算器 UML类图 c++

    计算器 uml 类图 c++ 附源代码

    UML类图符号 UML类图符号 UML类图符号

    UML类图符号 UML类图符号 UML类图符号 UML类图符号 UML类图符号 UML类图符号

    uml 类图实例

    uml 类图实例 oom powerdesigner 绘制

    UML类图与类的关系详解

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

    spring源码全部uml类图

    spring2.6框架源码全部uml类图,请用Enterprise Architect打开查看,是学习spring框架不可多得的资料

    UML类图在关系数据库中的实现

    UML类图在关系数据库中的实现,uml的类图在数据库的实现方法,具体的应用案例。

    Myeclipse中把java代码导成UML类图

    UML类图是UML中的一种常见的图表类型,用于描述类、接口、继承关系、关联关系等。UML类图可以帮助开发者快速理解Java代码的结构和关系,从而提高代码的可读性和可维护性。 Myeclipse中如何把java代码导成UML类图? ...

    简单工厂模式uml类图

    java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式

    UML类图中的接口与接口实现

    本文基于UML规范,介绍了UML类图中的接口与接口实现

    UML类图关系大全!!!!!

    UML类图关系大全,里面把之间的关系描述的较清楚,尤其是图像

    酒店管理信息系统UML类图

    这是一个简单的酒店管理信息系统的UML类图,用VISIO进行绘制,具有概要类图和详细类图,文档仅供大家参考

    UML类图的各符号含义及表示

    类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形。由这些基本的图形进行组合构成了类图的基本...这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程度。越向右耦合度越高。

    UML类图说明类图关系

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

    软考总结之UML类图专题试题

    适合软件测试过程师使用,软件评测师考试习题练习

    UML类图说明,如何画UML类图

    类图是UML中最基本的静态结构图,用于描述类之间的关系。类图由三层组成: 1. 第一层:类的名称。如果是抽象类,则用斜体显示。 2. 第二层:类的特性(字段和属性)。 3. 第三层:类的操作(方法或行为)。 访问...

    利用UML类图设计Java应用程序详解.doc

    UML类图是UML中的一种静态结构图,用于描述系统中的类、接口和它们之间的关系。Java是一种广泛应用的编程语言,UML类图可以用于设计Java应用程序。在本文中,我们将详细介绍如何使用UML类图设计Java应用程序。 UML...

Global site tag (gtag.js) - Google Analytics