Android MVP 個人實現(xiàn)

前言

MVP是根據(jù)MVC演變而來,類似的設計模式還有MVVC(model,view,viewmodel) . 暫時未分清楚MVC與MVP的區(qū)別.也沒有找到嚴謹?shù)腗VP的定義.根據(jù)網上的資料以及Goggle的demo械哟,自己定義進行了MVP設計,用來解決Activity過于龐大的問題暇咆。

MVP設計

首先定義三個部分 Model,View,Presenter.
View 丙曙,Presenter 各自定義接口,IView IPresenter.

public interface IVideoPlayerPresenter {   
 public void loadData();  
  //點擊關注   
 public void clickFollow(); 
 //點擊喜歡   
 public void clickLike();   
}
public interface IVideoPlayerView {   
 void bindData(VideoPlayerPageEntity entity);   
 void showLoading(boolean show);   
 //設置關注狀態(tài)   
 void setFollow(boolean follow);   
 void setLike(boolean like);
  • View

Android 中Acitivity或者Fragment實現(xiàn)IView接口亏镰,扮演View角色

public class VideoPlayerActivity extends BaseActivity implements View.OnClickListener,IVideoPlayerView 

在onCreate()函數(shù)中初始化presenter,并且加載數(shù)據(jù)

presenter = new VideoPlayerPresenter(this,client);
presenter.loadData();
  • Presenter

Presenter中完成數(shù)據(jù)的加載以及邏輯的處理,在構建函數(shù)中保存IView引用索抓,用來與View交互

public class VideoPlayerPresenter implements IVideoPlayerPresenter{
  public VideoPlayerPresenter(IVideoPlayerView videoPlayerView ) {
     this.videoPlayerView = videoPlayerView;   
  }
  @Override
  public void loadData() {   
    videoPlayerView.showLoading(true);   
    DataManager.getData(url);
 }
  • Model

Model主要進行獲取、保存逼肯、修改數(shù)據(jù)等功能,可以定義全局的DataManager進行封裝篮幢。如果數(shù)據(jù)結構簡單,也可以省略Model實現(xiàn)缺菌,直接在Presenter中進行數(shù)據(jù)操作搜锰。

總結

這樣實現(xiàn)MVP未必“規(guī)范” 男翰, 但是任何設計都是為了解決問題纽乱。該方式可以將業(yè)務昆箕、數(shù)據(jù)、UI進行解耦鹏倘,程序結構清晰,方便測試骆姐。即可滿足現(xiàn)階段需求。
當日后程序更為龐大玻褪,業(yè)務更為復雜, 再使用其他方式進行重構带射。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末窟社,一起剝皮案震驚了整個濱河市券勺,隨后出現(xiàn)的幾起案子灿里,更是在濱河造成了極大的恐慌,老刑警劉巖儒拂,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缀去,死亡現(xiàn)場離奇詭異,居然都是意外死亡缕碎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門凡怎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赊抖,“玉大人,你說我怎么就攤上這事氛雪。” “怎么了报亩?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵弦追,是天一觀的道長。 經常有香客問我劲件,道長约急,這世上最難降的妖魔是什么苗分? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮俭嘁,結果婚禮上,老公的妹妹穿的比我還像新娘拐云。我一直安慰自己,他們只是感情好叉瘩,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布粘捎。 她就那樣靜靜地躺著,像睡著了一般攒磨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灸撰,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天拼坎,我揣著相機與錄音,去河邊找鬼泰鸡。 笑死,一個胖子當著我的面吹牛盛龄,可吹牛的內容都是我干的。 我是一名探鬼主播蹦锋,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欧芽,長吁一口氣:“原來是場噩夢啊……” “哼葛圃!你這毒婦竟也來了憎妙?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤厘唾,失蹤者是張志新(化名)和其女友劉穎龙誊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趟大,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年罕伯,在試婚紗的時候發(fā)現(xiàn)自己被綠了叽讳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡邑狸,死狀恐怖涤妒,靈堂內的尸體忽然破棺而出单雾,到底是詐尸還是另有隱情届腐,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布硬萍,位于F島的核電站,受9級特大地震影響朴乖,放射性物質發(fā)生泄漏。R本人自食惡果不足惜买羞,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一雹食、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧群叶,春花似錦钝荡、人聲如沸舶衬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至虽画,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喷鸽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工做祝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸡岗,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓轩性,卻偏偏與公主長得像,于是被迫代替她去往敵國和親悯嗓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容