面向组件的语言和面向对象的语言有什么区别?

时间:2012-06-25 22:39:15

标签: oop com

我在WCF的一本书中看到了这一行:

  

...用于编写COM组件的语言(例如C ++和Visual Basic)充其量是面向对象的,但不是面向组件的......

两者有什么区别?

2 个答案:

答案 0 :(得分:8)

我的意见/理解可能是错误的,我会因为写这篇文章而陷入其中。

面向对象的“我”意味着一种识别问题上下文所必需的关键数据模型的方法,以及操纵这些数据状态的相应方法,也是在问题的上下文中。这是一种组织数据的模式。另一种模式是简单地根据细分为可管理级别的功能进行组织 - 程序性。

面向组件的模式并不关心如何组织各种数据模型,而是如何绑定它们。那就是他们如何相互交谈。它可能有很多方面COM / RPC,Web服务(REST / SOAP)等。这是松耦合或紧耦合。

作者只是试图说COM功能是用一种不提供内置COM设施的语言构建的。

我的理解是,该语句不正确,因为选择绑定组件,是一种比C / C ++提供的语言更高级别的抽象。 COM只提供了绑定组件的方法之一。

答案 1 :(得分:0)

这是我的看法,

继承与接口似乎是在讨论2时提到的很多话题。

我还认为组件设计暗示您正在处理黑盒

组件设计似乎也涵盖超出单个内存空间的系统。所以呼叫Web服务或其他远程服务。

我不会说这些是竞争范式,而是不同的范例。