mvp請求多個物件

2021-09-28 21:27:11 字數 4567 閱讀 5735

個人對於mvp的看法,請查詢本人以前的部落格,本次主要是用mvp請求多個物件

可以自己封裝乙個api用來封裝請求的方法

這裡提供了請求5中不同的物件的方法,可以參考

當然如果不會mvp可以檢視一下我的部落格mvp簡介及簡單應用

public

inte***ce

api"

) observable]>

getbanner

(@path

("path"

) string path,

@query

("siteid"

) string siteid,

@query

("itemid"

) string itemid,

@query

("act"

) string act)

;//請求產品的方法

@get

("api/"

) observable]>

getproduct

(@path

("path"

) string path,

@query

("siteid"

) string siteid,

@query

("act"

) string act,

@query

("ctype"

) string ctype,

@query

("mid"

) string mid)

;//請求選單的方法

@get

("api/"

) observable]>

getmenu

(@path

("path"

) string path,

@query

("siteid"

) string siteid,

@query

("act"

) string act,

@query

("ctype"

) string ctype)

;//登入的方法

@get

("api/"

) observable

getregister

(@path

("path"

) string path,

@query

("siteid"

) string siteid,

@query

("act"

) string act,

@query(;

//退出的方法

@get

("api/"

) observable

getexit

(@path

("path"

) string path,

@query

("siteid"

) string siteid,

@query

("act"

) string act,

@query

("ctype"

) string ctype)

;}

自己建立的imodel介面,裡面的介面分別是負責請求不同的entity(也就是所謂的bean或者實體類)物件的

每個介面都有自己的工作,呼叫的時候可以用imodel點出自己需要用的那個子model介面

public

inte***ce

imodel

//請求產品分類的model

inte***ce

productview

//請求中間選單的model

inte***ce

menuview

//請求登入介面的model

inte***ce

registerview

//請求退出介面的model

inte***ce

exitview

}

接下來是iview

它的作用和imodel是一樣的

唯一的區別在於imodel是負責請求資料,iview是負責給檢視提供資料來進行相對應的操作

public

inte***ce

iview

//請求產品分類的view

inte***ce

productview

//請求中間選單的view

inte***ce

menuview

//請求登入介面的view

inte***ce

registerview

//請求退出介面的view

inte***ce

exitview

}

由於物件太多,就用乙個banner的來進行展示

和普通的區別就在於這個不是乙個imodel,而是imodel點出來的子model

public

class

bannermodel

//開始請求資料的方法

public

void

startloadbeanner()

@override

public

void

onnext

(bannerentity[

] bannerentities)

@override

public

void

onerror

(throwable e)

@override

public

void

oncomplete()

});}

}

接下來是該物件的presenter

public

class

bannerpresenter

implements

imodel.beannerview

//開始的方法

public

void

startloadbanner()

//資料請求成功,把資料傳遞給view

@override

public

void

loadsucess

(bannerentity[

] bannerentity)

//資料請求失敗,把報錯資訊傳遞給view

@override

public

void

loadfail

(string message)

}

主頁面的應用

這裡請求了三個介面的資料,按照個人需要實現對應的介面,並建立對應的presenter物件

//需要幾個就實現幾個介面和建立對應的presenter物件

public

class

myfragment_1

extends

fragment

implements

iview.beannerview

, iview.menuview,iview.productview

private

void

initview

(view view)

//請求輪播圖成功方法

@override

public

void

loadsucess

(bannerentity[

] bannerentity)

banner.

setbannerstyle

(bannerconfig.num_indicator_title)

.setbannertitles

(list_title)

.setimages

(list_src)

.setdelaytime

(1000).

setimageloader

(new

imageloader()

}).start()

;}//請求選單成功方法

@override

public

void

loadsucess

(menuentity[

] menuentity)

menuadapter.

notifydatasetchanged()

;}//請求產品成功方法

@override

public

void

loadsucess

(productentity[

] productentity)

productadapter.

notifydatasetchanged()

;}@override

public

void

loadfail

(string message)

}

iOS ASI 管理多個請求

asihttprequest繼承自nsoperation,這樣就可以把多個請求放在乙個佇列中,這樣便於管理多個請求 queen addoperation request1 好處1 一旦把請求新增到佇列,會自動開始執行,就不用調startasynchronous方法了 queen addoperati...

建立多個物件

class cat 屬性 方法 def eat self print 貓在吃魚.def drink self print 貓在喝可樂.def introduce self print 名字是 s,年齡是 d 湯姆的名字,湯姆的年齡 print 名字是 s,年齡是 d tom.name,tom.age...

建立多個物件

class cat 屬性 方法 def eat self print 貓在吃魚 def drink self print 貓在喝可樂.def introduce self print 名字是 s,年齡是 d 湯姆的名字,湯姆的年齡 print 名字是 s,年齡是 d tom.name,tom.age...