天天看點

模闆方法模式(Head First設計模式 讀書筆記)

模闆方法模式(封裝算法)

模闆方法模式在一個方法中定義一個算法的骨架,而将一些步驟延遲到子類中。模闆方法使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟。

類圖:

模闆方法模式(Head First設計模式 讀書筆記)

對模闆方法進行挂鈎

鈎子是一種生命在抽象類中的方法,但是隻有空得或者預設的實作。

鈎子的存在,可以讓子類有能力對算法的不同點有能力挂鈎。要不要挂鈎,由子類決定。

鈎子範例:

模闆方法模式(Head First設計模式 讀書筆記)

要點:

  1. “模闆方法”定義了算法的步驟,把這些步驟的實作延遲到了子類。
  2. 模闆方法的抽象類可以定義具體方法,抽象方法,和鈎子。
  3. 抽象方法由子類實作
  4. 鈎子是一種方法,他在抽象類中不做事,或者制作預設的事,子類可以選擇要不要去覆寫它
  5. 為了防止子類修改模闆方法中的算法,可以将模闆方法聲明為 final
  6. 将決策權放在高層子產品中,一邊決定如何以及何時調用底層子產品
  7. 政策模式和模闆方法都封裝算法,一個用組合一個用繼承
  8. 工廠方法是模闆方法的一種特殊版本

繼續閱讀