`
xiangxingchina
  • 浏览: 520455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习:类之间的关系

 
阅读更多

http://www.cnblogs.com/forlina/archive/2011/06/22/2087048.html

类之间的关系

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

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

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

 

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

5.  Aggregation(聚合关系) 是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体, 一个是部分。同时,是一种弱的“拥有”关系。体现的是A对象可以包含B对象,但B对象不是A对象的组成部分。具体表现为,如果A由B聚合成,表现为A包含有B的全局对象,但是B对象可以不在A创建的时刻创建

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

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

8、总结

  根据关系的耦合程度来看:依赖 << 关联 << 聚合 << 组合 << 泛化

分享到:
评论

相关推荐

    为什么:关于因果关系的新科学中文版.pdf.zip

    2. **因果图模型**:书中可能会介绍如何使用有向无环图(DAGs)来表示变量之间的因果关系,这有助于识别因果结构和潜在的混淆因素。 3. ** Pearl的因果推理三部曲**:作者 Judea Pearl 提出的因果推理框架包括三个...

    C++类之间的关系2.zip

    继承是C++类之间关系的基础,允许一个类(子类或派生类)从另一个类(基类或父类)继承属性和行为。通过继承,子类可以重用基类的功能,并根据需要添加新的特性和方法。继承有助于代码复用,提高程序的可维护性和...

    Cocoa框架类之间的继承关系

    ### Cocoa框架类之间的继承关系详解 #### 一、概述 Cocoa框架是苹果为开发者提供的一个强大且完整的软件开发框架,主要用于Mac OS X和iOS应用的开发。它由多个子框架构成,其中最为基础和核心的是Foundation框架和...

    画个图看看我们之间有什么关系:关系图.pptx

    关系图是一种常用的数据可视化工具,用于展示数据之间的关系。关系图可以帮助我们理解数据集中变量如何相互关联,以及这些关系如何依赖于其他变量的过程。在本节中,我们将学习关系图的概念、类型、应用场景,并通过...

    高教类课件:公共关系学.zip

    《公共关系学》是高等教育领域的一门重要课程,旨在培养具备良好公关理论素养与实践能力的专业人才。...这个“高教类课件:公共关系学.zip”文件将为学习者提供丰富的教学资源,帮助他们深入学习这一领域的知识。

    java IO流(包含类之间的关系图)

    了解IO流的类之间的关系图是初学者学习Java IO流的基础。 字节流 字节流是Java IO流中最基本的流类型,用于处理二进制数据。常用的字节流有: * OutputStream:抽象类,所有字节流的父类。 * FileOutputStream:...

    MFC 类结构关系图

    #### 三、类之间的继承关系 1. **`CObject`类**:作为MFC中最基础的类,它提供了序列化、RTTI等功能。所有MFC类都直接或间接地从`CObject`继承。 2. **文档/视图体系结构**: - `CView`和`CDocument`都是直接从`...

    基于Deep Belief Nets 的中文名实体关系抽取

    在信息抽取领域,关系抽取是指从文本中识别两个实体之间的语义关系。在中文名实体关系抽取中,DBN可以用来检测和分类中文名实体之间的关系。DBN的优点是可以learning高维特征表示,并且可以capture复杂的关系模式。 ...

    基于强化学习和深度学习的实体、关系联合抽取

    ### 基于强化学习和深度学习的实体、关系联合抽取 #### 一、研究背景与意义 在信息爆炸的时代背景下,如何从大量的文本数据中高效地提取有用的信息成为了一个重要的课题。信息抽取(Information Extraction, IE)...

    QT4类继承关系

    通过qt42-class-chart.pdf,你可以得到一个详细的QT4类继承图表,直观地了解各个类之间的关系,这对于学习和理解QT4的架构以及如何有效利用其功能至关重要。这张图表通常会展示类的层次结构,以及各类的主要职责,...

    AS3.0类关系图.

    AS3.0类关系图是理解AS3.0核心库和类结构的关键工具,它通过图形化的方式展示了不同类之间的继承、关联和依赖关系。 在AS3.0中,类是面向对象编程的基本单位,它们定义了数据和行为。类关系图可以帮助开发者直观地...

    JAVA上机实验类与对象new学习教案.pptx

    * 类之间的关系:类之间存在多种关系,如“USES-A”关系、“HAS-A”关系、“IS-A”关系等。 * 构造函数:构造函数是一种特殊的方法,它具有和它所在的类完全一样的名字,一旦定义好一个构造函数,创建对象时就会自动...

    类与对象-java实验报告

    通过本次实验,学生可以深化理解面向对象编程的核心概念,学习如何在实际问题中运用类和对象,以及如何通过类与类的关系组织代码结构。这将有助于提高学生的编程能力和软件设计能力,为后续的项目开发奠定坚实的基础...

    论文研究-问题情境、注意力质量与组织从偶发事件中学习:以民用航空事故为例.pdf

    因此,本研究利用20年间美国民用航空产业所经历的安全事故数据,从稳定性和发散性两个方面检验了问题情境中组织注意力质量与组织从偶发事件中学习成效之间的关系.注意力稳定性的作用体现在:偶发事件之前重复发生的...

    qt5.1类关系图

    QT5.1是一个重要的版本,它是Qt框架的一部分,Qt是一个跨平台的应用...总之,"qt5.1类关系图"是学习和掌握QT5.1开发的宝贵资源,它以图形化的形式揭示了类库的内在结构,帮助开发者构建清晰的代码逻辑,提高编程效率。

    基于机器学习的非线性格兰杰因果关系统计意义的研究.pdf

    * 格兰杰因果关系:一种指标,用于评估两个时间序列之间是否存在因果关系。 * 机器学习:一种人工智能技术,能够从数据中学习和改进其性能。 * 非线性因果关系:一种复杂的因果关系,不具备线性关系的特点。 * LASSO...

    机器学习:基于线性回归、岭回归、xgboost回归、Lasso回归、随机森林回归预测卡路里消耗

    1. 线性回归:线性回归是一种基本的机器学习算法,用于建立连续变量和一个或多个自变量之间的线性关系模型。在预测卡路里消耗这个问题上,可以使用线性回归模型来建立卡路里消耗与其他相关变量(如运动时间、体重等...

    精品资料(2021-2022年收藏)高等教育心理学第四章学习心理概述.doc

    这五类学习结果并不构成等级关系,它们代表了不同类型的技能和能力发展,反映了学习的多样性。理解这些分类有助于教师设计更有效的教学策略,以满足学生在不同学习阶段的需求,促进他们的全面发展。

Global site tag (gtag.js) - Google Analytics