兩個原則:
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.shnenglu.com/eXile/。