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的環境下運行。)   ...