将程序分成小对象后,必须将这些对象连接起来。哪里有不同类型的连接。继承,组合,聚合,委托。这些类型有多种类型和模式,如松耦合,紧耦合,控制反转,通过接口委托等。所提到的连接类型的正确通用名称是什么?我可以建议他们都被称为'耦合',但我在谷歌找不到任何好的分类,所以也许我试图使用错误的术语?也许有人知道一个可靠的,可信的分类,我可以使用术语吗?
答案 0 :(得分:15)
这些通常被称为“关系”。
取自Object-Oriented Programming with Java: An Introduction的David 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方法发展而来,这些方法几乎可以互换地使用术语“关联”和“关系”。从普遍接受的做法来看,我认为你不会因使用其中一种而混淆用户。