如何在MFC中将GUI与逻辑分开?

时间:2013-03-30 04:39:51

标签: c++ design-patterns user-interface mfc logic

我想在VS2010中开发一个MFC应用程序。我希望将GUI与逻辑分离,以便修改GUI变得更加容易。但我不知道如何设计类来实现这个功能。我应该使用哪种设计模式? MFC是否有任何特殊的方法来处理这个问题?

而且,我不熟悉设计模式。所以我希望有人可以给我样品或详细的文章来解释这一点。 (另外,我更喜欢不那么复杂的模式!^^)

非常感谢!

2 个答案:

答案 0 :(得分:4)

MFC已经在其基于SDI / MDI的模板中提供了这种分离。例如,您有一个CWinApp实例和一个CMainFrame用于程序本身。对于MDI应用程序中的每个文件,您都有一个CDocument和一个CView类。

注意:

  • MFC不使用经典的MVC分离,它们将视图和控制器组合到一个UI部分中。
  • MFC对此并不严格,您也可以将按钮处理程序放入应用程序/文档中,而不仅仅放入框架/视图中。
  • 您没有将模型与MFC完全分开,它仍然建立在它之上。如果你想实现这种分离,你必须做额外的工作,但是你有一个模块,你可以完全单独测试。这允许您使用测试驱动的开发,这在嵌入GUI时更加困难。

答案 1 :(得分:0)

可能会有所帮助http://martinfowler.com/eaaDev/uiArchs.html。还尝试找到MVC(模型/视图/控制器)模式。