gof定義:
template method(模版方法):定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。template method使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。
一 : 我為什麼用template method?
最近在做的系統中,有很多檔案需要管理:比如藥品檔案,**商檔案,銷售商檔案等等,對這些檔案的管理主要是:
對於每個檔案,操作的流程都是一樣的,如果每個程式設計師都寫一遍,難免會出現一些流程上的差異,而且會出現很多重複的**,為了解決這個問題,在此使用了template method
二 : **實現舉例:
1.定義乙個抽象類,抽象類中定義了演算法的骨架(假設乙個修改操作要先檢查第一次checkone,然後檢查第二次checktwo,然後呼叫更新方法updateitem.如果檢查不通過怎麼辦,如果更新成功怎麼辦,這些我們都在抽象類中寫好,但是怎麼檢查,怎麼儲存更新我們不管,這是程式設計師真正要實現的方法):
1:public
abstract
class basehandle
2:
7:
8:public
void alteritem()
9:
17:if (this.checktwo() == false)
18:
22:if (this.updateitem())
23:
27:else
28:
31: }
32:catch (exception exc)
33:
36: }
37:
38:protected
abstract
bool checkone();
39:
40:protected
abstract
bool checktwo();
41:
42:protected
abstract
bool updateitem();
43: }2.編寫具體的子類(子類只需實現父類中定義的抽象方法,實現的方式完全由自己定義):
第乙個子類:
1:public
class onehandle:basehandle
2:
8:
9:protected
override
bool checktwo()
10:
14:
15:protected
override
bool updateitem()
16:
20: }第二個子類:
1:public
class twohandle : basehandle
2:
8:
9:protected
override
bool checktwo()
10:
14:
15:protected
override
bool updateitem()
16:
20: }3.呼叫方法(這時呼叫兩個子類的方法,執行的步驟是一模一樣的了):
1:class program
2:
11: }4.執行結果:
總結:template method設計模式讓我們能定義操作的步驟,極大的降低了我們幾個人做類似功能時的**量,並且規範了我們的操作步驟,非常實用.
設計模式 設計模式
物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...
設計模式 9 設計模式
文章 head first 第一章 head first 設計模式讀書筆記 1 策略模式 觀察者模式 head first設計模式學習2 裝飾者模式 head first 設計模式3 工廠模式 head first設計模式4 命令模式 head first 設計模式5 介面卡模式和外觀模式 head...