我在一本关于 WCF 的书中遇到了这一行:
...并且用于编写 COM 组件的语言(例如 C++ 和 Visual Basic)充其量是面向对象的,但不是面向组件的...
两者有什么区别?
我的观点/理解可能是错误的,我会因为写这篇文章而火上浇油。
面向“我”意味着一种识别关键数据模型的方法,这些模型对问题的上下文至关重要,以及在问题的上下文中操纵这些数据状态的相应方法。它是一种组织数据的模式。另一种模式是简单地根据细分为可管理级别的功能进行组织 - 程序。
面向组件的模式并不关心您如何组织各种数据模型,而是您如何将它们捆绑起来。这就是他们彼此交谈的方式。它可以是多种方式 COM/RPC、Web 服务 (REST/SOAP) 等。即松耦合或紧耦合。
作者只是想说 COM 功能是用一种不提供内置 COM 工具的语言构建的:)
我的理解是,该声明是不正确的,因为选择捆绑组件是一种比 C/C++ 等语言提供的更高级别的抽象。COM 只是提供了一种绑定组件的方法。
这是我的看法,
继承与接口似乎是讨论 2 时经常提到的话题。
我还认为组件设计意味着您正在处理黑匣子
组件设计似乎也涵盖了超出单个内存空间的系统。所以调用网络服务或其他远程服务。
我不会说这些是相互竞争的范式,而是不同的范式。