設計模式 模版設計模式

2021-09-06 23:30:04 字數 4190 閱讀 5847

模版設計模式的概念或者定義:

定義乙個操作中演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法的結構即可重定義該演算法中的某些特定步驟。

以前雖然經常在專案中使用模版設計模式,特別在baseactivity,basefragement,basefragementactivity,baseadapter這種基類定義一些延伸到子類中實現的方法,但是不知道這個就是模版設計模式,我就斃了狗了。

比如在base類裡面為了規範**的風格,在oncreate()裡面呼叫空的函式,比如initview(),比如onclicklistener(),比如,初始化title的inittitlebar(),然後通過抽象方法供子類去實現這些模組,這樣在專案編碼過程中能夠將每個人的**規範到指定的位置,方便檢視和除錯**。還有就是對於一些顯示和判斷的邏輯封裝,以及都自定義的toast,對話方塊的統一,都可以通過在base類中通過模版設計模式來實現,在子類中只是改變顯示的內容,和邏輯以及業務的調整。

模版設計模式對編碼的好處:

規範**的流程,統一**風格。

可擴充套件。

將子類的公共業務進行提取,減少冗餘**的編寫,實現**的復用。

以baseactivity舉例子來說:

getview(intid)

isnull(stringstr)

isstr(stringstr)

gotoactivity(class<?>cls)

toast(stringmessage)

都是將本來在子類中冗餘的**統一封裝到base類進行呼叫,簡化**編寫,減少冗餘。

2

import

3import

android.content.intent;

4import

android.content.res.resources;

5import

android.os.bundle;

6import

android.text.textutils;

7import

android.view.keyevent;

8import

android.view.view;

9import

android.view.window;

10import

android.view.windowmanager;

11import

android.widget.edittext;

12import

android.widget.toast;

13import

com.yougou.android.util.logger;

14/**

15* @類名: baseactivity

16* @描述: todo(activity基類,所有的activity都要繼承自該activity)

17*/

18public

class baseactivity extends

activity

32/**

33* 通過泛型來簡化findviewbyid

34*

35*

@param

id36

* @param

37*

@return

38*/

39 @suppresswarnings("unchecked")

40protected

final

extends view> e getview(int

id) catch

(classcastexception ex) 47}

48/**

49* 檢查字串是否是空物件或空字串

50*

51*

@param

str52

* @return

為空返回true,不為空返回false

53*/

54public

boolean

isnull(string str) else60}

61/**

62* 檢查字串是否是字串

63*

64*

@param

str65

* @return

為空返回true,不為空返回false

66*/

67public

boolean

isstr(string str)

70/**

71* 從當前activity跳轉到目標activity,

72* 如果目標activity曾經開啟過,就重新展現,

73* 如果從來沒開啟過,就新建乙個開啟

74*

75*

@param

cls76

*/77

public

void gotoexistactivity(class<?>cls)

83/**

84* 新建乙個activity開啟

85*

86*

@param

cls87

*/88

public

void gotoactivity(class<?>cls)

93/**

94* @title: toast

95* @description: todo(土司操作)

96*

@param

@param

context

97*

@param

@param

message 要顯示的內容

98*

@return

void 返回型別

99*

@throws

100*/

101public

void

toast(string message)

105/**

106* @title: toast

107* @description: todo(土司操作)

108*

@param

@param

context

109*

@param

@param

message 設定檔案

110*

@return

void 返回型別

111*

@throws

112*/

113public

void toast(int

message)

117/**

118* 從資源獲取字串

119*

120*

@param

resid

121*

@return

122*/

123public string getstr(int

resid)

126/**

127* @方法名: getdemon

128* @描述: todo(獲取資源檔案中的尺寸內容)

129* @設定:

@param

mrid

130* @設定:

@return

設定檔案

131* @返回: int 返回型別

132* @日期: 2014-6-30 下午2:14:11

133*

@throws

134*/

135protected

int getdemon(int

mrid)

138/**

139* 從edittext 獲取字串

140*

141*

@param

edittext

142*

@return

143*/

144public

string getstr(edittext edittext)

147@override

148public

boolean onkeydown(int

keycode, keyevent event)

153return

super

.onkeydown(keycode, event);

154}

155 }

模版設計模式

b 定義 b 在乙個方法中定義乙個演算法骨架,而將一些步驟延伸到子類中。其本質 把可變和不可變進行分類。可變部分延伸到子類來完成,不變部分交給父類定義成骨架 b 優點 b 1 可以使的子類可以在不改變演算法骨架的情況下,重新定義演算法中的某些步驟。2 模版方法通過把不變的部分搬移到超類,去除了子類中...

js設計模式 模版設計模式

設計模式處處透漏者前輩們的指揮,在眾多設計模式中模版設計模式是軟體設計中最常用,最正統的模式,也是本人最喜歡的模式,其就像一顆顆螺絲釘處處體現在軟體設計和其他模式中 父類定義乙個模板結構,將部分具體內容延遲到子類去實現 在軟體系統設計中最常用的就是介面 抽象類 類 設計模式,如下圖 再此模式中介面定...

抽象類應用 模版設計模式

機械人 robot 具備充電 工作兩個基本操作 人類 human 具備吃飯 工作 睡覺三個基本操作 豬 pig 具備吃飯 睡覺兩個基本操作。定義的乙個行為類 abstract class action public abstract void eat 定義子類的操作標準 public abstrac...