zoukankan      html  css  js  c++  java
  • 关联、组合、聚合、依赖关系比較

    类之间的关系

    1. 种类: Generalization(泛化)Dependency(依赖关系)Association(关联关系)Aggregation(聚合关系)Composition(合成关系)

    2.  当中Aggregation(聚合关系)Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。

    3.  Generalization(泛化)表现为继承或实现关系(is a)。详细形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。

    4.  Association关联关系表现为变量(has a )。类与类之间的联接,它使一个类知道还有一个类的属性和方法。比如假设A依赖于B,则B体现为A的全局变量。关联关系有双向关联和单向关联。双向关联:两个类都知道还有一个类的公共属性和操作。单向关联:仅仅有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更easy建立和维护,有助于寻找可服用的类。

       

    5.  Aggregation(聚合关系) 是关联关系的一种,是强的关联关系。聚合关系是总体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是总体,一个是部分。同一时候,是一种弱的“拥有”关系。体现的是A对象能够包括B对象,但B对象不是A对象的组成部分。详细表现为,假设AB聚合成,表现为A包括有B的全局对象,可是B对象能够不在A创建的时刻创建。

     

     

    6.  Composition(组合关系)是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表总体的对象负责代表部分的对象的生命周期。Composition(组合关系)是一种强的“拥有”关系,体现了严格的部分和总体的关系,部分和总体的生命周期一致。假设AB组成,表现为A包括有B的全局对象,而且B对象在A创建的时刻创建。

    7.  Dependency(依赖关系)表现为函数中的參数(use a)。是类与类之间的连接,表示一个类依赖于还有一个类的定义,当中一个类的变化将影响另外一个类。比如假设A依赖于B,则B体现为局部变量,方法的參数、或静态方法的调用。

     

    8.          Helios    2008-1-11

  • 相关阅读:
    [C++]C++11右值引用
    [cocos2d-x]registerScriptHandler和registerScriptTapHandler区别
    [深度探索C++对象模型]关于成员初始化列表(member initiallization list)
    [深度探索C++对象模型]memcpy和memset注意事项
    sql server isnull函数
    sql server 数据类型
    sql server SQL 服务器
    案例:按钮拖动移动
    PHP 随笔记
    laravel5 事务回滚
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4295737.html
Copyright © 2011-2022 走看看