MVC和MVP的區別


MVC: Model - View - Controller

MVP: Model - View - Presenter

 

MVC和MVP到底有什么區別呢?

     從上圖可以看到在MVC里,View是可以直接訪問Model的,從而View里面是能包含Model的信息的,不可避免還要包括一些業務邏輯。在MVP里更關注Model的不變,而同時有多個對Model的不同展示。

 

把Controller和View混在一起,會有一些弊端:

1、難以測試。

2、代碼難以重用。

 

MVP是如何解決MVC的問題的?

 

      在MVP里,Presenter完全把Model和View進行了分離,主要的程序邏輯在Presenter里實現,而且Presenter與具體的view是沒有一點關聯的,而是通過定義好的接口進行交互,從而使得在變更View的同時可以保持Presenter不變,即重用。

     在MVP模式里,View只應該有簡單的Set/Get方法,用戶輸入和設置顯示的內容,除此不應該有更多的內容,絕不允許直接訪問Model,這就是與MVC最大的不同之處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM