A.我理解的MVC完整結構(未對view做描述)1.Action採用組合模式,既可以代表一個簡單的動作,也可以代表一組動作組合。List Cmd代表要執行的任務,可拆解成一個或一組動作(Action)。以資料庫操作為例:1.1 執行一個簡單的插入命令,只需要創建一個插入Action即可;1.2 若要...
第一種模式,可處理組合命令,具有撤銷(Undo)和重做(Redo)功能,支持多種資料庫類型 1.Action採用組合模式,既可以代表一個簡單的動作,也可以代表一組動作組合。
List<Action> Cmd代表要執行的任務,可拆解成一個或一組動作(Action)。
以資料庫操作為例:
1.1 執行一個簡單的插入命令,只需要創建一個插入Action即可;
1.2 若要實現一個複雜的事務(一組增刪改操作),則可將這些增刪改的Action創建成一個複合Action;
1.3 若要實現多個不相關的命令,則可提供一組Action;
1.4 若要實現簡單的搜索,只需創建一個查詢Action即可;
1.5 若要實現級聯查詢,則需要創建一個複合查詢Action,即父查詢Action添加與之級聯的子搜索Action,組合成一個複合查詢Action。
PS:若業務邏輯很簡單,Control可直接調用Dao;
2.List<Action> Undo和Redo,用於實現Undo(撤銷)和Redo(重做);具體實現需要Action配合。
3.Action執行任務採用命令模式,真正的執行在IDao對象執行(命令與實現分離,易於擴展),IDao對象採用抽象工廠模式創建。
4.ConcreteDao實現IDao介面,側重增刪改查的邏輯實現,具體實現由DBHelper執行。 優點: 1.Action可以表示的動作很多,可擴展性強; 2.使用抽象工廠模式,容易轉換資料庫操作; 3.Control類可以實現Redo和Undo操作,並且支持事務(一組Action 或 複合Action) 缺點: 1.有多個介面,實現相對複雜; B.側重資料庫操作的版本(未顯示view) 1.定義IBaseDao介面,可將單一dao對象組合成複雜dao(多個dao共用資料庫連接);
2.靈活的搜索條件(SearchCond),可設置單一和組合的搜索條件,應用於級聯搜索; 3.支持不同的資料庫操作實現。