MVC,MVP優缺點總結
阿新 • • 發佈:2019-02-12
mvp和mvc的優缺點
mvc是指使用者觸發事件的時候,view層會發送指令到controller層,然後controller去通知model層更新資料,model層更新完資料後會直接在view層顯示結果。
對android來說 activity幾乎承擔了view層和controller層兩種角色,並且和model層耦合嚴重,在邏輯複雜的介面維護起來很麻煩。
mvp模式下的activity只承擔了view層的角色,controller的角色完全由presenter負責,view層和presenter層的通訊通過介面實現,所以VP之間不存在耦合問題,view層與model也是完全解耦了。
presenter複用度高,可以隨意搬到任何介面。
mvp模式下還方便測試維護:
可以在為完成介面的情況下實現介面除錯,只需寫一個Java類,實現對應的介面,presenter網路獲取資料後能呼叫相應的方法。
相反的,在介面未完成聯調的情況下正常顯示介面,由presenter提供測試資料。
mvp的問題在於view層和presenter層是通過介面連線,在複雜的介面中,維護過多介面的成本很大。
解決辦法是定義一些基類介面,把網路請求結果,toast等通用邏輯放在裡面,然後供定義具體業務的介面整合。