MVP設計模式的寫法

2021-08-01 03:42:17 字數 2457 閱讀 2286

android裡面用到的頁面資料互動設計模式主要有三類,主要是mvc、mvp、mvvm,我用的最多的就是mvp,我個人覺得mvp更容易讓人理解,因為它的邏輯性比較嚴密,而且也方便後期的在開發,當然缺點就是要寫多寫很多類和多寫很多**

主要分為三大塊:

model:負責資料,持久化等操作

view:介面,檢視,負責ui的繪製和使用者的互動

present:連線model和view的橋梁

這裡舉個例子,這裡的網路資料獲取用到了okhttp,還有json資料解析,用到了gson

新建三個包:model、view、present

然後就是建類了,model、present、view分別寫乙個介面,比如這裡view:

public

inte***ce articlecommentsview

model:

//由於這裡我使用了okhttp進行網路資料的獲取,所以寫了乙個回掉

public

inte***ce articlecommentsmodel

}

present:

public

inte***ce articlecommentspresenter

然後就是需要寫實體類去實現這三個介面

model:

public

class

articlecommentsmodelimpl

implements

articlecommentsmodel

@override

public

void

onresponse(string response, int id)

callback.loadarticlecommentsdatas(comments.getdata().getdata());

}});

}@override

public

void

loadnomoredatas()

}

present://因為後台給的介面有頁數,所以就新增了乙個nextpage的翻頁處理

public

class

articlecommentspresenterimpl

implements

articlecommentspresenter

@override

public

void

loaddatas(string content)

@override

public

void

loadnomoredatas()

@override

public

void

loadfailed()

});nextpage ++;

}@override

public

void

refresh(string content)

}

然後mvp這邊就寫完了,剩下的就是在activity或者fragment中去處理這些了

比如:

public

class

articledetailsactivity

extends

baseactivity

implements

articlecommentsview

這裡只需要對present介面類定義全域性變數,然後在oncreate中進行例項化

·commentspresenter = new articlecommentspresenterimpl(this);

commentspresenter.loaddatas();

然後在實現view的方法裡面進行資料和頁面的互動處理

大體上就是這樣了哦,希望對你有所幫助,謝謝了

urlhandler 類:

public

class

urlhandler &page=

* */

public

static

final string handlurl(string url,object... params)", params[i]+"");

}return url;}}

MVP設計模式

建立ipresenter介面,把所有業務邏輯的介面都放在這裡,並建立它的實現presentercompl 在這裡可以方便地檢視業務功能,由於介面可以有多種實現所以也方便寫單元測試 建立iview介面,把所有檢視邏輯的介面都放在這裡,其實現類是當前的activity fragment activity...

MVP設計模式簡介

mvp設計模式是相對於mvc設計模式的,要介紹mvp設計模式,我們首先先了解下什麼是mvc設計模式,在mvc設計模式中,activity應該是屬於view這一層。而實際上它既承擔了view,同時也包含了一些controller的東西在裡面。我們設計程式的乙個基本原則就是高內聚,低耦合。傳統的mvc設...

設計模式之 MVP

mvp是在mvc架構基礎上演變過來的。其中p presenter 處理了controller裡邊的邏輯,其實就是presenter分擔了controller的壓力。mvp的資料流向如下圖所示,分別通過介面實現。實際開發中controller一般都是存在的。只不過controller會把邏輯處理部分交...