從mvc到mvp再到mvvp,相信大家就已經聽說過這些架構了。但你真正應用到哪個階段了呢?是不是還苦於網上對mvp晦澀的講解?今天,coder哥就用最通俗易懂的方式告訴你,mvp怎麼用!
先上一張mvp結構圖。
接下來就一步步教你用:
1、首先把結構包分好,方便理清思路
2、定義model層的介面imodel
/**
* model層介面---實現該介面的類負責實際的獲取資料操作,如資料庫讀取、網路載入
*/public
inte***ce
imodel
然後建立model實體類實現imodel介面,並覆寫資料獲取方法。
/**
* 實現imodel介面,負責實際的資料獲取操作(資料庫讀取,網路載入等),然後通過自己的介面(loaddatacallback)反饋出去
*/public
class
model
implements
imodel catch (interruptedexception e)
}}.start();
}public
inte***ce
loaddatacallback
}
model層搞定!
2、定義iview介面
/**
* view層介面---執行各種ui操作,定義的方法主要是給presenter中來呼叫的
*/public
inte***ce
iview
然後建立view實體類實現iview介面,並覆寫ui操作方法。
/**
* 實現iview介面並實現各種ui操作的方法(其他的業務邏輯在presenter中進行操作)
*/public
class
viewactivity
extends
activity
implements
iview
});}
@override
public
void
showloadingprogress(final string message)
});}
@override
public
void
showdata(final string text)
});}
private
class
myhandler
extends
handler
@override
public
void
handlemessage(message msg) }}
}
view層搞定!
3、定義ipresenter介面
/**
* presenter層介面---控制model層的資料操作及呼叫view層的ui操作來完成「中間人」工作
*/public
inte***ce
ipresenter
然後建立presenter實體類實現ipresenter介面。
public
class
presenter
implements
ipresenter, model.loaddatacallback
@override
public
void
loaddata()
@override
public
void
success(string data)
@override
public
void
failure()
}
4、view中例項化presenter,通過presenter來處理業務邏輯。最終達到,view只負責ui操作,model只負責資料,presenter負責鏈結二者的目的。
view層完整**
/**
* 實現iview介面並實現各種ui操作的方法(其他的業務邏輯在presenter中進行操作)
*/public
class
viewactivity
extends
activity
implements
iview
});}
@override
public
void
showloadingprogress(final string message)
});}
@override
public
void
showdata(final string text)
});}
private
class
myhandler
extends
handler
@override
public
void
handlemessage(message msg) }}
}
大家要多看,多試驗,最重要的是理解這個思路。google官方的todo mvp**大家可以去研讀一下,是同乙個模式,只不過它把好多介面整合在乙個介面檔案中,防止**碎片化,大家研讀時記住這一點,就不會困惑了。 最通俗易懂的p value講解
這個問題,曾一度讓我懷疑我根本都沒有學懂知識,只是像規則一樣記住然後胡亂使用而已。此番記錄就當再次考驗我是否真正理解到p value的含義。p value,代表在原假設條件下,實驗事件可能發生的概率。舉例說明 拋一枚硬幣,正面朝上和反面朝上的概率是一樣的,各50 但這是有前提條件的,即硬幣是均勻的 ...
CDN最通俗易懂的CDN解釋
cdn的全稱是content delivery network,即內容分發網路。cdn是構建在現有網路基礎之上的智慧型虛擬網路,依靠部署在各地的邊緣伺服器,通過中心平台的負載均衡 內容分發 排程等功能模組,使使用者就近獲取所需內容,降低網路擁塞,提高使用者訪問響應速度和命中率。cdn的關鍵技術主要有...
通俗易懂系列之Android中的MVP設計模式
說起mvp設計模式,做開發的可能都不會陌生,多少都會有點自己對它的理解。那麼本篇部落格就記錄一下我對它的理解。其實,從一開始我有點不理解為什麼要有設計模式這種東西和為什麼要去用它。如果說為什麼要有設計模式,這個很好解決,設計模式可以讓我們的軟體更容易維護擴充套件,使 之間的關係變得更加清晰。那麼為什...