模板方法模式是乙個使用非常廣泛的設計模式,比較簡單,它主要是定義乙個操作中的演算法框架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。我們這裡以不同的人的每天來舉例:
首先定義乙個類,類中定義了 起床getup()、洗漱washing()、生活方式process()、睡覺sleeping()四個基本的通用方法,由於不同工作的人他的生活方式是不同的,所以我們將其方法定義為抽象方法,oneday()是我們這裡定義的模板方法,人的一天先起床 後洗漱 ,… ,再睡覺,**如下:
public abstract class
onedaysworking
protected
void
washing()
public abstract void
process()
;public
void
oneday()
protected
void
sleeping()
}
我們再定義三種不同的人群,學生、白領、工人:
/**
* 學生類
*/public
class
student
extends
onedaysworking
public
void
process()
}/**
* 白領類
*/public
class
whitecollar
extends
onedaysworking
public
void
process()
}/**
* 工人類
*/public
class
worker
extends
onedaysworking
public
void
process()
}
測試**如下:
public
class
tempmodeltest
}
輸出結果如下:
學生起床
學生洗漱
學生上學
學生睡覺
白領起床
白領洗漱
白領上班
白領睡覺
工人起床
工人洗漱
工人做工
工人睡覺
恭喜你!學會了模板方法模式!喜歡的關注一波啦~~ 設計模式 模板方法模式 Java
模板方法模式 template 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。舉個栗子 小明想在學習過後去運動或者上會網,那麼小明在學習某門課程過後一定會搞點事情,而這些事情是可變化的,誰也不知道他要幹什麼,所以...
java設計模式 模板方法模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。準備乙個抽象類,將部分邏輯以具體方法的形式實現,然後宣告一些抽象方法交由子類實現剩餘邏輯,有鉤子方法給予...
JAVA設計模式 模板方法模式
模板方法模式是一種行為型設計模式。其思想是 將部分邏輯以具體方法的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯,不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。模板方法模式涉及到2個角色 具體模板 concrete template 結構圖 具體 實現 publi...