java設計模式 模板方法模式

2021-08-04 05:42:32 字數 1287 閱讀 6203

在模板模式(template pattern)中,乙個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。

準備乙個抽象類,將部分邏輯以具體方法的形式實現,然後宣告一些抽象方法交由子類實現剩餘邏輯,有鉤子方法給予子類更大的靈活性,最後將方法彙總成乙個不可改變的模板方法。

1、在造房子的時候,地基、走線、水管都一樣,只有在建築的後期才有加壁櫥加柵欄等差異。 2、西遊記裡面菩薩定好的 81 難,這就是乙個頂層的邏輯骨架。 3、spring 中對 hibernate 的支援,將一些已經定好的方法封裝起來,比如開啟事務、獲取 session、關閉 session 等,程式設計師不重複寫那些已經規範好的**,直接丟乙個實體就可以儲存。

//抽象基類,為所有子類提供乙個演算法框架

//飲料類

public abstract class beverage

}//hook,鉤子函式,提供乙個預設或空的實現

//具體的子類可以自行決定是否掛鉤以及如何掛鉤

//詢問使用者是否加入調料

protected boolean isyouwantscondiments()

//為讓子類可見,許可權改為protected

protected abstract void addcondiments();

//基本方法

private void pourincup()

protected abstract void brew();

//基本方法,將水煮沸

private void boilwater()

}

public class coffee extends beverage 

@override

protected void brew()

}

public class tea extends beverage 

@override

protected void brew()

//子類通過覆蓋的形式選擇掛載鉤子函式

設計模式 模板方法模式 Java

模板方法模式 template 定義乙個操作中演算法的框架,而將一些步驟延遲到子類中。模板方法模式使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。舉個栗子 小明想在學習過後去運動或者上會網,那麼小明在學習某門課程過後一定會搞點事情,而這些事情是可變化的,誰也不知道他要幹什麼,所以...

JAVA設計模式 模板方法模式

模板方法模式是一種行為型設計模式。其思想是 將部分邏輯以具體方法的形式實現,然後宣告一些抽象方法來迫使子類實現剩餘的邏輯,不同的子類可以以不同的方式實現這些抽象方法,從而對剩餘的邏輯有不同的實現。模板方法模式涉及到2個角色 具體模板 concrete template 結構圖 具體 實現 publi...

java設計模式 模板方法模式

模板方法模式是乙個使用非常廣泛的設計模式,比較簡單,它主要是定義乙個操作中的演算法框架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。我們這裡以不同的人的每天來舉例 首先定義乙個類,類中定義了 起床getup 洗漱washing 生活方式process...