c++ - 理解C++框架的设计

标签 c++

通过网上的一些浏览,我才了解到任何框架都是框架提供的一组库,我们可以简单地使用这些库函数来开发应用程序。

我想了解更多

  1. 什么是 C++ 框架。
  2. C++ 框架是如何设计的?
  3. 我们如何使用它们并开发应用程序。

谁能给我提供一些链接来理解 C++ 中“框架”的概念

最佳答案

  1. “框架”旨在提供解决方案的结构 - 就像摩天大楼的钢框架为其提供结构一样,但需要通过特定用途的定制来充实。两者都假设了一些特定的问题空间——无论是多线程客户端/服务器事务,还是需要有空调的办公空间,如果您的需求有实质性的不同——例如图像处理或政府美术馆——然后尝试使用一个不合适的框架通常比不使用更糟糕。事实上,如果您的系统不断发展的需求超出了框架支持的范围,您可能会发现自定义框架本身的选项不足,或者您采用的设计不适合您以后需要的重新架构的解决方案.例如,单线程框架鼓励您以非线程安全的方式进行编程,这可能是事后高效制作多线程的噩梦。

  2. 它们的设计是通过观察大量程序需要类似的解决方案架构,并将其抽象到一个固定的解决方案框架中,并为这些应用程序特定的定制提供便利。

  3. 它们的使用方式取决于它们试图解决的问题。用于事务调度/处理的框架通常会定义一种方法来列出要监听的 IP 端口,指定在建立连接和新数据到达时要调用的函数,注册回调任意函数的计时器事件。 XML 文档、图像处理、A.I.等等。框架将完全不同....整个想法是,它们每个都提供一种使用风格,对于可能希望使用它们的应用程序来说,这种风格简单直观。

许多框架的一个大麻烦是它们承担了使用它们的应用程序的所有权,并将应用程序降级为填充某些回调的次要角色。如果应用程序需要使用多个框架,或者甚至一个框架和一些额外的库来做,例如异步通信,那么框架可能会使这变得非常困难。一个好的框架被设计得更像是一组客户可以控制但不必受其限制的库。好的框架很少见。

关于c++ - 理解C++框架的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3553081/

相关文章:

c++ - GetStartupInfo() 根据启动应用程序的资源管理器而有所不同

c++ - 检查已删除对象的值

c++ - XNextEvent 由于某种原因不起作用

c++ - 求 vector C++ 输入的平均值

c++ - DirectX - 创建以顶点数组作为参数的缓冲区

c++ - 尽管已安装,Visual Studio 仍无法打开源文件

c++ - 如何处理 C++ 中的循环组合?

c++ - 通过地址调用函数失败

c++ - 需要澄清 Bloom 和后处理 (DirectX 10/11)

c++ - 无法调用基类函数