我一直在尝试理解与 C++ 相关的组件化(对比 OOP 概念,也称为面向组件的编程)。
我已经在互联网上对此进行了研究,但可用的结构化信息很少。 Windows COM 对象看起来非常组件化。我找到了 http://c2.com/cgi/wiki?ComponentDefinition有用。
什么是最好和最简单的 C++ 代码示例来说明组件化概念?
我有一些高层次的想法,比如:
我有一个英语单词。一个词是由几个符号或 字符。现在,每个字符 可以有多种类型,例如 字母、数字、标点符号、空格等所以,每个 字母、数字等表示基本组件,基于 其中,一个词将形成并存在。 单词成为一个聚合组件(符号),基于 将形成一个句子等等。
质子、中子和电子是单独的集合体,它们形成了原子。
那么,复合设计模式与组件化概念有何不同?
请指导我。 谢谢。
最佳答案
' Composite ' 正如你提到的是一种设计模式。设计模式是在软件设计过程中适用的问题-解决方案对。
如果我正确理解您对术语“组件化”的解释,它是一种架构原则,遵循比设计更高的抽象级别来定义 SW 的结构。
(如果您对我所说的架构的确切含义感兴趣,请参阅 this paper,它试图正式定义术语设计/架构。)
如果您稍微深入一点,“复合”有助于使用相同的界面处理容器和内容。例如,如果您在示例中应用“复合”模式,则可以定义一个接口(interface)“粒子”,然后可以将原子/电子/质子/中子视为粒子,同时还保持容器/内容关系。这是一个非常具体的问题-解决方案对,只能在某些情况下出现。
但是,“组件化”可以适用于更广泛的情况,如果首先存在任何容器-内容关系,您就不会感到困扰。即使组件之间存在这样的关系,您也不会在意用相同的接口(interface)来对待它们。
关于c++ - 关于C++组件化的一个想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757661/