我在WCF的一本书中看到了这一行:
...用于编写COM组件的语言(例如C ++和Visual Basic)充其量是面向对象的,但不是面向组件的......
两者有什么区别?
答案 0 :(得分:8)
我的意见/理解可能是错误的,我会因为写这篇文章而陷入其中。
面向对象的“我”意味着一种识别问题上下文所必需的关键数据模型的方法,以及操纵这些数据状态的相应方法,也是在问题的上下文中。这是一种组织数据的模式。另一种模式是简单地根据细分为可管理级别的功能进行组织 - 程序性。
面向组件的模式并不关心如何组织各种数据模型,而是如何绑定它们。那就是他们如何相互交谈。它可能有很多方面COM / RPC,Web服务(REST / SOAP)等。这是松耦合或紧耦合。
作者只是试图说COM功能是用一种不提供内置COM设施的语言构建的。
我的理解是,该语句不正确,因为选择绑定组件,是一种比C / C ++提供的语言更高级别的抽象。 COM只提供了绑定组件的方法之一。
答案 1 :(得分:0)
这是我的看法,
继承与接口似乎是在讨论2时提到的很多话题。
我还认为组件设计暗示您正在处理黑盒
组件设计似乎也涵盖超出单个内存空间的系统。所以呼叫Web服务或其他远程服务。
我不会说这些是竞争范式,而是不同的范例。