首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解C++框架的设计

理解C++框架的设计
EN

Stack Overflow用户
提问于 2010-08-24 02:04:52
回答 4查看 4.7K关注 1票数 1

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

我想知道更多关于

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

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

EN

回答 4

Stack Overflow用户

发布于 2010-08-24 02:30:46

  1. “框架”是用来提供解决方案结构的东西--就像摩天大楼的钢框架给出了结构一样,但需要通过特定用途的定制来充实。两者都假设了一些特定的问题空间--无论是多线程客户机/服务器事务,还是对空调办公空间的需求,如果您的需求有本质上的不同--例如图像处理或政府艺术画廊--那么尝试使用一个不太合适的框架往往比不使用任何一个都糟糕。事实上,如果您的系统的不断发展的需求超出了框架所支持的范围,您可能会发现定制框架本身的选择是不够的,或者您所采用的使用它的设计不适合您以后需要的重新架构的解决方案。例如,单线程框架鼓励您以非线程安全的方式进行编程,这可能是使高效多线程事后生效的恶梦。
  2. 它们是通过观察大量程序需要类似的解决方案体系结构来设计的,并将其抽象到一个带有特定应用程序定制设施的固定解决方案框架中。
  3. 它们的使用方式取决于它们试图解决的问题。事务调度/处理框架通常将定义一种方法,用于列出要侦听的IP端口,在建立连接和新数据到达时指定要调用的函数,注册回调到任意函数的计时器事件。XML文档、图像处理、A.I.等框架将完全不同.整个想法是,它们各自提供了一种简单、直观的使用风格,供希望使用它们的应用程序使用。

许多框架的一个大麻烦是,它们拥有使用它们的应用程序,并将应用程序降级为填充某些回调的次要角色。如果应用程序需要使用多个框架,甚至一个框架,再加上一些额外的库,例如异步通信,那么这些框架可能会使这非常困难。一个好的框架设计得更像一组库,客户端可以控制这些库,但不需要受到限制。好的框架是罕见的。

票数 3
EN

Stack Overflow用户

发布于 2010-08-24 02:23:48

通常情况下,在OOP语言(包括C++)中,框架(相对于“只是”库或库集)意味着一个软件子系统,除其他外,它提供您应该继承的类,在应用程序代码中覆盖某些方法来专门化类的功能以满足应用程序的需求。如果它只是一些函数和typedef的集合,则应该更恰当地称为库,而不是框架。

我希望这能解决你的第1点和第3点。关于第2点,理想情况下,框架的设计者在某个领域有很多设计应用程序的经验,他们将他们的经验和技能“提炼”成一个框架,让(可能不太有经验的)开发人员更容易、更迅速地构建他们自己的应用程序。当然,在现实世界中,这种理想并不总是被遵循的。

票数 2
EN

Stack Overflow用户

发布于 2010-08-24 08:42:11

使用像CppDepend这样的工具,您可以分析任何C++框架,立即对其设计进行逆向工程,但也可以准确地了解框架的总体代码质量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3553081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档