mvp架構在android這一塊已經盛行依舊,對於一些學習能力比較強的人來說,已經能夠運用自如甚至改造優化了,對於吾等菜鳥,卻是如此的陌生,今日這篇部落格,算是小弟在學習和應用上的一點總結罷了,如有不足,還請各位大神不吝指教。
mvp架構是什麼就不多說了,博主主要很大家分享的是,如何設計mvp架構。
先來分析一下mvp如何使用:m-v-p三層之間,p作為中間層,負責m,v之間的資料互動的中介,將資料從m層獲取,處理之後提交到v層,換句話說,v需要持有p的例項,p層需要持有v的例項。原理很簡單,使用泛型對資料進行封裝處理:
1.定義乙個v層的空介面,主要是方便封裝:
/**
* v層介面
*/public
inte***ce
iview
2.定義乙個p層的介面:
/**
* 抽象為介面
* */
public inte***ce ipresenterextends
iview>
3.封裝p基類:繫結解綁v例項
/**
* 抽象類 統一管理view層繫結和解除繫結
* *
@param
*/public class
basepresenter
<
vextends
iview, m
extends
imodel
>
implements
ipresenter
<
v>
/*** 用於檢查view是否為空物件**
@return
*/ public boolean isattachview()
@override
public void attachview(v view)
@override
public void dettachview()
}}
4.m層封裝:
/**
* m層
*/public
inte***ce
imodel
/** * 登入model
* created by admin on 2018/2/5.
*/public
inte***ce
iloginmodel
extends
imodel
/** * 登入
* created by admin on 2018/2/5.
*/public
class
loginmodel
implements
iloginmodel
}
之後,將資料提交到activity或者fragment就行了。
最基本的鋪墊已經做好了,接下來就該封裝view了:
/**
* created by admin on 2018/2/5.
*/public
abstract
class
mvpactivity
<
vextends
iview, p
extends
basepresenter
<
v>>
extends
implements
iview
protected
p getpresenter()
protected
void
setpresenter(p presenter)
protected
v getview()
...@override
protected
void
ondestroy()
}
收工,mvp基礎框架搭建完成了。沒錯,就是基礎框架,但是能不能用呢,讓我們拭目以待吧。
先來寫乙個view:
public
inte***ce
iloginview
extends
iview
然後是presneter:
/**
* created by admin on 2018/2/5.
*/public class
loginpresenter
extends
basepresenter
<
ilogin
, loginmodel
>
public void login()
}@override
public void onfailure()
}});
}}
最後來完成activity的邏輯:
public
class
loginactivity
extends
mvpactivity
<
iloginview
, loginpresenter
>
implements
iloginview
public
void
login(view view)
@override
public
void
onloginsuccess()
@override
public
void
onfailed()
部落格只簡單的介紹了如何去封裝mvp架構,但是還存在著不完美之處,mvp架構優化目前發現了乙個問題,如果各位還有什麼發現,記得聯絡我哦,一起努力完善。
對於Android MVP的一些思考(二)
上次對mvp的表面概念作出了一些思考 對於mvp 響應式程式設計以及事件匯流排的一些思考 而隨著對自己的mvp框架深入優化 擴充套件,也發現了一些疑惑的地方。相信接觸過mvp框架的都清楚,針對model view presenter這三者,都會為其單獨建立乙個inte ce,規範其各自的行為。舉個例...
極限程式設計筆記(一)
什麼是xp?xp是一種社會性的變革 xp的價值 是溝通,簡單,反饋,勇氣和尊重。xp是一種軟體開發的風格,專注於程式設計技術,清晰溝通還有團隊協作的精彩實踐。xp是一條可以使得一起開發軟體的人們共同進步直至卓越的途徑 xp是一種方 它建立在解決軟體開發的約束的基礎之上 xp適合模糊或者快速變化的需求...
封裝變化(一)
軟體設計最大的敵人,就是應付需求不斷的變化。變化有時候是無窮盡的,於是專案開發就在反覆的修改 更新中無限期地延遲交付的日期。變化如懸在頭頂的達摩克斯之劍,令許多軟體工程專家一籌莫展。正如無法找到解決軟體開發的 銀彈 要徹底將變化扼殺在搖籃之中,看來也是不可能完成的任務。那麼,積極地面對 變化 方才是...