3

我一直在尝试理解与 C++ 相关的组件化(与 OOP 概念相反,也称为面向组件的编程)。

我在互联网上对此进行了研究,但可用的结构化信息很少。windows COM 对象看起来非常组件化。我发现http://c2.com/cgi/wiki?ComponentDefinition很有用。

什么是最好和最简单的 C++ 代码示例来说明组件化概念?

我有一些高层次的想法,比如:

  1. 我有一个英文单词。一个由几个符号或 字符组成。现在,每个字符可以有几种类型,如 字母、数字、标点符号、空格等。所以,每个 字母、数字等。代表基本组成部分,在此基础上,一个将形成并存在。单词成为一个聚合组件(符号),基于它形成一个句子等等。

  2. 质子、中子和电子是形成原子单个集合成分

那么,复合设计模式与组件化概念有什么不同呢?

请指导我。谢谢。

4

1 回答 1

1

您提到的“复合”是一种设计模式。设计模式是在软件设计过程中适用的问题-解决方案对。

如果我正确理解了您对“组件化”一词的解释,那么它是一种架构原则,它遵循比设计更高的抽象级别来定义 SW 的结构。

(如果你对我所说的架构感兴趣,请参阅这篇试图正式定义术语设计/架构的论文。)

如果您稍微深入一点,“复合”有助于使用相同的界面处理容器和内容。例如,如果您在示例中应用“复合”模式,您可以定义一个接口“粒子”,然后可以将原子/电子/质子/中子视为粒子,同时还保持容器/内容关系。这是一个非常具体的问题-解决方案对,只能在某些情况下出现。

但是,“组件化”可以适用于更广泛的情况,如果一开始就存在任何容器-内容关系,您不会受到打扰。即使组件之间存在这样的关系,您也不在乎用相同的接口对待它们。

于 2012-08-01T13:29:44.853 回答