3.文档视图:从gui分割状态

Posted billxyd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.文档视图:从gui分割状态相关的知识,希望对你有一定的参考价值。

  为了解决一个类实现所有功能的缺陷,我们把application分为2个部分。一个部分业务逻辑,一个部分视觉渲染和交互。这2个类在学术上被称为document view 或者 model

delegate。

   Document类用来处理业务逻辑,和视觉渲染、GUI事件没有一点关系。它简单的存储应用程序的状态,提供接口获得状态并根据应用程序规则改变状态。另外,提供机制告知相关对象,应用程序状态改变。

  View类处理事件和图像渲染。提供对 Document类的操作,界面改变和 Document类中状态改变同步。

   Document View设计模式实现状态和图像显示分离,它们能单独的改变。Document类成为 non-GUI单元,能单独的工作和检测。任何View通过notification system保持和Document内容一致,并根据Document内容 负责图像呈现和用户交互。

  这种设计消除了一些对单个类实现的担忧,对状态和业务逻辑的测试变得更容易:通过调用Document类中的方法。此Document对象现在是独立的,如果需要的话,可以和不同的View工作。代价就是告知View,Document中状态改变(notification system)。

 

代码如下:

 

以上是关于3.文档视图:从gui分割状态的主要内容,如果未能解决你的问题,请参考以下文章

VC 单文档视图分割

Word文档分割总结

MFC单文档 添加 多视图

CSplitterWnd动态分割

在分割视图中怎么不能响应菜单消息呢

Qt 模型和视图 - 将数据从模型链接到视图,如何?