mvp模式已經火很久了,之前也看網上好多人都在討論這個設計模式,從網上下載過很多demo,可能是基礎不到位,挺難理解的。這段時間公司來的新同事,聽說他就是使用這種模式開發,一時好奇就跑過去請教了一波,趁熱打鐵,自己再研究一波,希望有所突破。
百度下來,發現一篇簡而易懂的好文,特貼出來https://segmentfault.com/a/1190000003927200。我的demo是一個登陸功能,也是這篇文章裏的一個功能,本寶依葫蘆畫瓢看了下自己照着打了一波,若有所獲。
首先來看看mvp的構成:
M:model (數據結構,可以理解成JavaBean)
V:View (UI界面, layout佈局等)
P:Presenter (業務邏輯處理接口)
MVP的核心思想:
MVP的好處:
我是第一次使用MVP模仿寫demo, 除了發現會創建好多接口,還有邏輯處理很清晰以外,並未發現其他優點,嘿嘿。
MVP的使用:
敲完demo,感覺這張圖的表達簡直不要太完美。
1、Activity(或者Fragment)需要繼承IVew接口, IVew接口是專門處理界面UI變化的,裏面有一系列和界面有關的方法;
2、Acitity還需要實例化IPresenter接口,IPresenter接口專門處理業務邏輯,裏面有一系列和業務邏輯相關的方法;
3、PresenterCompl類繼承IPresenter接口, 包含IVew接口,這個類實現IPresenter接口的具體方法,並傳入IView裏對應的方法來通知Activity。
4、Model並不是必須有的,但是一定會有View和Presenter。
代碼上傳到github上了,在mvpdemo裏面:https://github.com/jjjSilence/jjjPlus/tree/master/mvpdemo