两个原则:
1)MVP模式:Model - View - Presenter
2) Presenter 优先原则
一) MVP模式:
MVP是MVC(Model-View-Controller)的变种。
基本模式:View ←← Presenter →→ Model
事件通知:View →→ Presenter ←← Model
View:GUI界面布局;对Model和Presenter一无所知;代码比较简单,不含任何逻辑处理;
Model:进行逻辑处理;对View和Presenter一无所知;提供状态和公共方法;当状态变化时触发事件;
Presenter:控制用户处理流程;除了构造函数没有公共方法,无状态;一个窗体对对应一个Presenter;向Model和View订阅事件,对于View可应用EventFilter来过滤多余事件。
说明: 事件机制是实现MVP松耦合的关键。
二)Presenter 优先流程:
1. 创建用户事例;
2. 创建Presenter,利用Model和View的Mock或stub来实现用户事例;
3. 创建Model;
4. 创建View。
TDD流程:
1. 创建 Presenter stub类, 在构造器中带有两个参数:Model接口和View接口;
2. 创建Model接口和View接口的Mock 测试对象
3. 对所有用户事例:
a) 分析用户事例对于View的影响,添加View接口支持;
b) 分析用户事例对于Model的影响,添加Model接口支持;
c) 对于新的接口方法添加Mock对象支持;
d) TDD循环:
i. 写出一个对于Presenter的测试,通过View或Model的事件或动作来驱动应用处理;
ii. 对于Model的状态和View的状态进行Assertion判定;
iii. 实现Presenter的私有方法
iv. 测试通过。
4. 创建一个最小化的用户界面实现。
本文根据http://download.microsoft.com/download/c/3/d/c3d745d1-c081-4021-aa2c-5839c6ea3380/DVL354.ppt 整理而成。转载请表明原贴地址。 http://www.cppblog.com/eXile/。