MVP模式在Android项目中的使用
煩了在Activity中編寫太多的代碼,該app由我來主導。就選擇用MVP模式。
概述
MVP是模型(Model)、視圖(View)、主持人(Presenter)的縮寫,分別代表項目中3個不同的模塊。
模型(Model)
負責處理數(shù)據(jù)的加載或者存儲,比如從網(wǎng)絡或本地數(shù)據(jù)庫獲取數(shù)據(jù)等;
視圖(View)
負責界面數(shù)據(jù)的展示,與用戶進行交互;
主持人(Presenter)
相當于協(xié)調(diào)者,是模型與視圖之間的橋梁,將模型與視圖分離開來。
如上圖所示,View與Model并不直接交互,而是使用Presenter作為View與Model之間的橋梁。
其中Presenter中同時持有Viwe層以及Model層的Interface的引用,而View層持有Presenter層Interface的引用。
當View層某個界面需要展示某些數(shù)據(jù)的時候,首先會調(diào)用Presenter層的某個接口,然后Presenter層會調(diào)用Model層
請求數(shù)據(jù),當Model層數(shù)據(jù)加載成功之后會調(diào)用Presenter層的回調(diào)方法通知Presenter層數(shù)據(jù)加載完畢,
最后Presenter層再調(diào)用View層的接口將加載后的數(shù)據(jù)展示給用戶。這就是MVP模式的整個核心過程。
結(jié)合demo的示意圖
圖片放大看
這樣分層的好處就是大大減少了Model與View層之間的耦合度。一方面可以使得View層和Model層單獨開發(fā)與測試,互不依賴。另一方面Model層可以封裝復用,可以極大的減少代碼量。
技巧
先確定Presenter類的方法,再推出view和model的方法。
步驟:
1、從頁面功能按鈕分析得出: a)登錄功能。b)清除功能。 2、Presenter類就有了 ?login() 和 clear() 方法。 3、login()需要用戶名和密碼。則IView接口有了 a)getUserName() b)getpawd() c)showprocess() 顯示進度條 d)顯示登錄結(jié)果,等等的方法
依次類推,把IView和IMode的方法推出來。
總結(jié)
以上是生活随笔為你收集整理的MVP模式在Android项目中的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python支持复数类型以下什么说法是错
- 下一篇: 内表,外表