聚合、遏制和控制的解释;com中的委托

聚合、遏制和控制的解释;com中的委托,com,software-design,Com,Software Design,你能解释一下聚合、包含和委派之间的区别吗?它们是对象组合的通用概念(com或任何其他技术之上的概念)。该链接在com中还有一个单独的关于聚合的部分 类似地,您可以阅读。和是对象组合的通用概念(com或任何其他技术之上的概念)。该链接在com中还有一个单独的关于聚合的部分 类似地,您可以阅读。包含描述了一个类的概念,其中的数据成员是另一个类/类型的对象 委派表示一个类使用另一个类来完成任务或目标的想法 委派通常通过包含来完成包含描述了一个类的概念,其中一个数据成员是另一个类/类型的对象 委派表示一

你能解释一下聚合、包含和委派之间的区别吗?它们是对象组合的通用概念(com或任何其他技术之上的概念)。该链接在com中还有一个单独的关于聚合的部分

类似地,您可以阅读。

和是对象组合的通用概念(com或任何其他技术之上的概念)。该链接在com中还有一个单独的关于聚合的部分


类似地,您可以阅读。

包含描述了一个类的概念,其中的数据成员是另一个类/类型的对象

委派表示一个类使用另一个类来完成任务或目标的想法


委派通常通过包含来完成

包含描述了一个类的概念,其中一个数据成员是另一个类/类型的对象

委派表示一个类使用另一个类来完成任务或目标的想法


委派通常是通过包含来完成的,因为你已经用COM标记了它,我假设你在问COM是如何使用这些术语的——在COM术语中,它们的意思比一般使用时更具体

很方便,MSDN有定义这些的页面-我将给出一个简短的总结:

  • -当一个外部对象拥有(包含)并使用(委托)内部对象时。这两个对象保持不同的身份和独立的接口集

  • -当两个或多个COM对象基本上共享其接口并表现为一个COM对象时。然后,客户机代码将处理看似单个对象,但实际上是其他对象的“聚合”的对象


当您希望一个对象从另一个对象“继承”一组接口时,通常使用聚合。然而,实现起来有点复杂:COM要求从一个对象上的任何接口必须能够QI到任何其他接口,因此所涉及的各种对象必须协作,以确保可以从一个对象上的任何接口QI到另一个对象上的任何接口,引用计数在两个对象之间都起作用。

既然您已经用COM标记了它,我假设您在问COM是如何使用这些术语的——在COM术语中,它们的含义比一般使用时更为具体

很方便,MSDN有定义这些的页面-我将给出一个简短的总结:

  • -当一个外部对象拥有(包含)并使用(委托)内部对象时。这两个对象保持不同的身份和独立的接口集

  • -当两个或多个COM对象基本上共享其接口并表现为一个COM对象时。然后,客户机代码将处理看似单个对象,但实际上是其他对象的“聚合”的对象


当您希望一个对象从另一个对象“继承”一组接口时,通常使用聚合。然而,实现起来有点复杂:COM要求从一个对象上的任何接口必须能够QI到任何其他接口,因此所涉及的各种对象必须协作,以确保可以从一个对象上的任何接口QI到另一个对象上的任何接口,在两个对象之间都有引用计数工作。

请注意,in-COM聚合具有非常特定的含义,这与此回复中的链接不同;COM聚合本质上是一组单独的对象,它们相互协作以共享相同的COM标识,有效地(从客户端的角度来看)表现为一个接口集合;COM聚合本质上是一组单独的对象,它们相互协作以共享相同的COM标识,有效地(从客户机的角度)表现为一个接口集合。