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競賽中,經常需要用到陣列 字串 佇列 堆疊 鍊錶等資料結構和排序 搜...