17

我在一本关于 WCF 的书中遇到了这一行:

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

两者有什么区别?

4

2 回答 2

9

我的观点/理解可能是错误的,我会因为写这篇文章而火上浇油。

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

面向组件的模式并不关心您如何组织各种数据模型,而是您如何将它们捆绑起来。这就是他们彼此交谈的方式。它可以是多种方式 COM/RPC、Web 服务 (REST/SOAP) 等。即松耦合或紧耦合。

作者只是想说 COM 功能是用一种不提供内置 COM 工具的语言构建的:)

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

于 2012-06-25T22:59:36.550 回答
0

这是我的看法,

继承与接口似乎是讨论 2 时经常提到的话题。

我还认为组件设计意味着您正在处理黑匣子

组件设计似乎也涵盖了超出单个内存空间的系统。所以调用网络服务或其他远程服务。

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

于 2016-03-18T22:28:45.013 回答