使用C++的MVC方法

Ste*_*goo 18 c++ model-view-controller design-patterns

我一直在学习PHP MVC模式,这很酷.几乎完成了应用程序,我可以看到你没有良好的设计可以制造代码有多乱.现在可以将MCV应用于C++应用程序吗?如果可能的话,插件管理器/插件在哪里?在模型或控制器中?谢谢!

编辑:

我的意思是带有GUI工具包的C++,如QT/Wxwidgets/GTK +另外请帮我讲解如何用C++实现.我已经学会了如何在PHP中完成它,但是你知道这两种语言有些不同!

EDIT2

http://forums.wxwidgets.org/viewtopic.php?f=1&t=30983

lur*_*her 27

你如何在C++中实际实现它

  • 使负责渲染的类对应用程序细节一无所知.称他们为SomethingView类,以明确这一点

  • 使您的域对象对可视化或用户交互一无所知.你不需要称它们为Model,但你可以

  • 创建一组负责运行控制器角色的类:如果可能的话,通过依赖注入以某种方式连接依赖关系来查看和建模类.示例:CppInject.在任何情况下,控制器类都可以了解模型和视图类,因此重要的部分是:视图和模型对象之间的所有耦合都与控制器隔离.

  • 此外,这意味着所有命令式编程也应该局限于控制器类:视图和模型应该是声明式的.这意味着,他们应该提供与其角色相关的服务,但避免与其他对象直接交互作为副作用

  • 你不需要在事件式系统中实现控制器和其他组件之间的通信,尽管这样的系统肯定是有用的,但肯定不是必需的

  • 惊喜!以上内容适用于任何语言或框架,当然除了语言之外已经从一开始就迫使MVC扼杀你的喉咙,即:ruby on rails

  • 这种方法不是更像MVP模式吗?在MVC中,视图和模型彼此了解.模型通知视图,视图将数据拉出以直接显示在模型中.在MVP中,如上所述,其中模型和视图彼此不了解并且演示者进行了连接. (2认同)

Alo*_*ave 9

MVC是一种设计模式,而不是特定于语言的结构,所以是的,您也可以将它应用于C++应用程序.

MVC可以并且应该以任何语言应用,因此您的用户界面与后端松散耦合,并且可以在相互影响最小的情况下进行更改.

MVC模式将对象清晰地分离为:

  • 维护数据的模型,
  • 用于显示全部或部分数据的视图,以及
  • 用于处理影响模型或视图的事件的控制器.


Arm*_*yan 5

是的,MVC 可以应用于 C++。例如,MFC 框架使用本质上是 MVC 的文档/视图架构。

设计模式不是库或类。这是一种模式。因此,您没有用于 C++ 的通用 MVC 库。


MaK*_*MaK 5

使用树蛙框架。TreeFrog 框架是用于开发 Web 应用程序的高速全栈 C++ 框架。