Android 運用泛型的MVP架構

2021-10-06 17:59:44 字數 3502 閱讀 4573

entity相關的類

public

class

baseentity

public

void

setcode

(int code)

public boolean issuccess()

public

void

setsuccess

(boolean success)

public string geterror()

public

void

seterror

(string error)

}

public

class

userinfo

extends

baseentity

public

userinfo

(string compant,string name)

public string getcompant()

public

void

setcompant

(string compant)

public string getname()

public

void

setname

(string name)

@override

public string tostring()

';}}

運用泛型的基類

先定義v層、p層、m層的基類

1、basemodel

2、basepresent

3、baseview

//接收p層傳給他的需求

public abstract class

basemodel

<

pextends

basepresent

,contract

>

public abstract contract

getcontract()

;}

//present 基類

public abstract class

basepresent

<

vextends

baseview,m

extends

basemodel

,contract

>

public

void

bindview

(v v)

public

void

unbindview()

}//獲取view p---v

public

vgetview()

return

null;}

public abstract contract

getcontract()

;public abstract m

getmodel()

;}

//定義view層基類,繼承activity

public abstract class

baseview

<

pextends

basepresent

,contract

>

extends

activity

//讓p層做什麼

public abstract contract

getcontract()

;//從子類中獲取具體的契約

public abstract p

getpresent()

;public

void

error

(exception e)

@override

protected

void

ondestroy()

}

定義login功能實現的類

將model層、view層、present層協商的共同業務,封裝成介面

//將model層、view層、present層協商的共同業務,封裝成介面

//契約 合同

public

inte***ce

logincontract

inte***ce

view

<

textends

baseentity

>

inte***ce

present

<

textends

baseentity

>

}

login功能在v層中的實現

public

class

mainactivity

extends

baseview

private

void

init()

public

void

dologinaction

(view view)

@override

public logincontract.view getcontract()

else}}

;}@override

public loginpresent getpresent()

}

login功能在present層中的實現。
這裡只做**處理。

public

class

loginpresent

extends

basepresent

@override

public

void

responserequest

(userinfo userinfo)};

} @override

public loginmodel getmodel()

}

login功能在model層中的實現

//接收到present層給她的需求,並返回處理結果

public

class

loginmodel

extends

basemodel

//接收到present層給她的需求

@override

public logincontract.model getcontract()

else}}

;}}

總結

在運用泛型的mvp架構中也脫離不了介面的定義和使用。

1、定義model、present、view層的base類

2、basemodel中接收p層需求,通過契約合同contract傳入子類需要實現的介面

3、basepresent中接收contract傳入子類需要實現的介面

運用泛型實現增刪改

最近在做專案時,頻繁的使用增刪改,把大量時間花費在寫sql語句和引數上,就想能不能寫乙個通用的方法省略掉寫sql 和引數。想了一段時間,想到.net裡面有attitude類,可以自定義屬性,這樣就可以根據自定義屬性獲取sql欄位和引數名,然後構造出sql語句和sqlparamertes 要想根據不同...

C STL泛型程式設計 在ACM中的運用

學習過c 的朋友們應該對stl和泛型程式設計這兩個名詞不會陌生。兩者之間的關係不言而喻,泛型程式設計的思想促使了stl的誕生,而stl則很好地體現了泛型程式設計這種思想。這次想簡單說一下stl在acm中的一些應用。我們知道,在acm競賽中,經常需要用到陣列 字串 佇列 堆疊 鍊錶等資料結構和排序 搜...

C STL泛型程式設計 在ACM中的運用

學習過c 的朋友們應該對stl和泛型程式設計這兩個名詞不會陌生。兩者之間的關係不言而喻,泛型程式設計的思想促使了stl的誕生,而stl則很好地體現了泛型程式設計這種思想。這次想簡單說一下stl在acm中的一些應用。我們知道,在acm競賽中,經常需要用到陣列 字串 佇列 堆疊 鍊錶等資料結構和排序 搜...