c++ - 关于C++组件化的一个想法

标签 c++ oop design-patterns components

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

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

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

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

  1. 我有一个英语单词。一个是由几个符号或 字符。现在,每个字符 可以有多种类型,例如 字母、数字、标点符号、空格等所以,每个 字母、数字等表示基本组件,基于 其中,一个将形成并存在。 单词成为一个聚合组件(符号),基于 将形成一个句子等等。

  2. 质子、中子和电子单独的集合体,它们形成了原子

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

请指导我。 谢谢。

最佳答案

' Composite ' 正如你提到的是一种设计模式。设计模式是在软件设计过程中适用的问题-解决方案对。

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

(如果您对我所说的架构的确切含义感兴趣,请参阅 this paper,它试图正式定义术语设计/架构。)

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

但是,“组件化”可以适用于更广泛的情况,如果首先存在任何容器-内容关系,您就不会感到困扰。即使组件之间存在这样的关系,您也不会在意用相同的接口(interface)来对待它们。

关于c++ - 关于C++组件化的一个想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757661/

相关文章:

c++ - 用于查找多数元素的分而治之算法?

PHP:调用动态函数,但在类中?

php - PHP 中的对象赋值

mysql - 如何替换 MySQL 中多次出现的模式?

c# - 单例模式Unity创建多个副本

c++ - 如何设置包含在 CMake/CLion 中的子目录?

C++ 打印到终端会显着减慢代码速度吗?

c++ - 枚举不适用于类似代码的模板

language-agnostic - 过程编程与面向对象编程的开发成本?

java - 类设计查询