C#_MVP Pattern_探究(1)再次溫故MVC

在很久之前有寫了兩篇是使用JAVA來分享關於MVC的基礎觀念和練習示範 有興趣的開發朋友可以點下面回顧 JAVA MVC_以MVC架構來進行Java GUI程式開發(一) 介面層邏輯和業務層邏輯的拆分 https://coolmandiary.blogspot.com/2019/01/java-mvcmvcjava-gui.html JAVA MVC_以MVC架構來進行Java GUI程式開發(二) 建構簡單的四則運算計算器_model中負責計算 http://coolmandiary.blogspot.com/2019/01/java-mvcmvcjava-guimodel.html 那近期剛好又認識到了另一個架構設計的模式跟它有點相似叫做「MVP」 Model-View-Presenter 是基於MVC又再延伸發展出來的一種使用者介面設計模式 這裡我們做一個MVC和 MVP的比對 MVC主要由如下三元素組成,各自職責分別如下: Model(模型):資料保存 View(視圖):使用者介面 Controller(控制器):業務邏輯 主要思維: 1.由View負責傳送指令到Controller 2.Controller完成業務邏輯流程之後要求Model改變狀態 3. Model在去將資料發送到View上,使用者獲得回饋 。 運作方式: 在使用者操作時候,MVC又可分為兩種方式 一種通過View來接受指令再傳送給Controller 另一種則是直接去透過Controller接收指令(上一次Java設計的範例就是採用這樣子設計思維) MVC的優缺點: 優點: (1)把業務邏輯全部分離到Controller中,可模組化程度較高。 當業務邏輯變更的時候,不需要變更View和Model,只需將Controller換成另外一個Controller就行了。(Swappable Controller) (2)通常透過Observer Pattern來進行多個View的同步更新。 缺點: (1)在沒有UI環境下對Controller做Unit Test時,比較不容易測試。 因為View的同步操作是由View自己執行的。(View只能在有UI的環境下運行。) ...