【问题标题】:How to separate GUI from logic in MFC?如何将 GUI 与 MFC 中的逻辑分开?
【发布时间】:2013-03-30 04:39:51
【问题描述】:
我想在 VS2010 中开发一个 MFC 应用程序。我希望将 GUI 与逻辑分离,这样修改 GUI 会变得容易得多。但我不知道如何设计类来实现这个功能。我应该使用哪种设计模式? MFC有什么特殊的方法来处理这个问题吗?
此外,我不熟悉设计模式。所以我希望有人能给我样品或详细的文章来解释这一点。 (另外我更喜欢不太复杂的模式!^^)
非常感谢!
【问题讨论】:
标签:
c++
design-patterns
user-interface
mfc
logic
【解决方案1】:
MFC 已经在其基于 SDI/MDI 的模板中提供了这种分离。例如,您有一个 CWinApp 实例和一个用于程序本身的 CMainFrame。对于 MDI 应用程序中的每个文件,您都有一个 CDocument 和一个 CView 类。
注意:
- MFC 不使用经典的 MVC 分离,它们将视图和控制器组合成一个 UI 部分。
- MFC 对此并不严格,您也可以将按钮处理程序放入应用程序/文档中,而不仅仅是放入框架/视图中。
- 您没有将模型与 MFC 完全分开,它仍然建立在此之上。如果你想实现这种分离,你必须做额外的工作,但是你有一个可以完全单独测试的模块。这使您可以使用测试驱动的开发,这在嵌入到 GUI 中时会更加困难。