继承,组合,聚合,委派的通用名称是什么?

时间:2010-05-26 17:35:20

标签: terminology

将程序分成小对象后,必须将这些对象连接起来。哪里有不同类型的连接。继承,组合,聚合,委托。这些类型有多种类型和模式,如松耦合,紧耦合,控制反转,通过接口委托等。所提到的连接类型的正确通用名称是什么?我可以建议他们都被称为'耦合',但我在谷歌找不到任何好的分类,所以也许我试图使用错误的术语?也许有人知道一个可靠的,可信的分类,我可以使用术语吗?

6 个答案:

答案 0 :(得分:15)

这些通常被称为“关系”。

Glossary of Java and Related Terms

取自Object-Oriented Programming with Java: An IntroductionDavid J. Barnes

有一个关系

  

请参阅聚合。

是一个关系

  

参见继承。

类继承

  

当超类被子类扩展时,它们之间存在类继承 relationship

聚合

  

relationship ,其中一个对象包含一个/多个其他从属对象作为其状态的一部分。

委托

  

对象将其收到的消息传递给子坐标对象的过程。如果编程语言中没有继承,则委派是避免代码重复和促进代码重用的最可行的替代方法。

答案 1 :(得分:10)

我将那些称为Associations,这可能意味着从合成到继承,这两个对象是“相关的”。然而Relationships也可以工作,我猜大多数人认为“关系”是更好的术语。

答案 2 :(得分:5)

继承 - 两种类型之间的关系,意味着重用行为的机制

构成 - 一种暗示整体/部分关系的结构关系,并且该部分在没有整体

的情况下不能存在

聚合 - 一种暗示整体/部分关系的结构关系,并且该部分可以在没有整个

的情况下存在

委托 - 一种行为关系,其中一组行为由不同的对象提供给消息的主要接收者。

  

所提到的连接类型的正确通用名称是什么?

它们是关系,但是是不同类型的关系 - 继承是类型之间的关系,对象之间的组合和聚合关系,以及委托行为关系。你可以正交地在同一个两个类之间存在所有三种类型。

  

我可以建议他们都被称为'耦合'

每个人都会(在UML术语中)创建一个«使用»依赖关系,从包含客户端的包到包含供应商的包。在系统中的模块之间创建依赖关系图时,我发现分离简单的依赖关系和分类器使用(例如操作的类型,参数或属性)很有用;要正确运行,你需要导入你所依赖的元素所使用的分类器,但是你不需要直接需要传递依赖或分类器的依赖。

答案 3 :(得分:2)

简单的答案是它是面向对象编程中对象之间的关系。

答案 4 :(得分:1)

Enterprise Patterns应提供相当多的参考资料,并确定行业中常用的名称。

答案 5 :(得分:1)

UML是一种公认​​的标准,它提供了一些您可能想要借用的术语。

来自UML规范v2.3(http://www.omg.org/spec/UML/2.3/Infrastructure/PDF/):

  

关联描述了一组元组,其值引用了类型化实例。关联的实例称为链接。

换句话说,如果我正确地阅读此内容,则关联会特别将类的实例相互关联。聚合和组合是各种关联。但是,在UML的形式语言中,泛化(继承)和委托不是。

事实证明,UML还具有关系的概念。再次,从规范:

  

关系是一个抽象概念,它指定了元素之间的某种关系。

我会说这足以涵盖你所有的四个任期。

也就是说,UML不一定是定义这些术语的唯一仲裁者。 UML从几个OO方法发展而来,这些方法几乎可以互换地使用术语“关联”和“关系”。从普遍接受的做法来看,我认为你不会因使用其中一种而混淆用户。