《大話設計模式》模板方法模式

2021-10-02 15:56:52 字數 1188 閱讀 3313

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

模板方法模式提供了乙個很好的**復用平台,通過把不變行為搬移到超類,去除子類中的重複**來體現它的優勢。

有時候,我們會遇到由一系列步驟構成的過程需要執行。這個過程從高層次上看是相同的,但有些步驟的實現可能不同。當不變的和可變的行為在方法的子類實現中混合在一起的時候,不變的行為就會在子類中重複出現。這時候通常就應該要考慮用模板方法模式。

// 需要實現的介面

type inte***ce inte***ce

// 模板"類"

type template struct

func

(t *template)

templatemethod()

// 這裡可以實現一些公共步驟

func

(t *template)

primitivemethod1()

func

(t *template)

primitivemethod2()

// "子類"1

type concrete1 struct

func

(c *concrete1)

primitivemethod1()

func

(c *concrete1)

primitivemethod2()

// "子類"2

type concrete2 struct

func

(c *concrete2)

primitivemethod1()

func

(c *concrete2)

primitivemethod2()

func

main()

client.

templatemethod()

client.methods =

&concrete2

client.

templatemethod()

}

大話設計模式 模板方法模式

一 模式介紹 模板方法模式特別適合於整體流程 演算法 固定,只有一小部分功能不同的場景 通過乙個抽象父類構造起整個骨架,而將不固定的部分以抽象方法的形式保留,交給子類去具體實現 二 採用模板方法模式實現街邊小吃 烤冷麵 假設烤冷麵製作流程是固定的 1.加熱麵餅,2.加調料 我們先來實現乙個製作骨架 ...

模板方法模式 大話設計模式

在今天,讀書有時是件 麻煩 事。它需要你付出時間,付出精力,還要付出乙份心境。僅以 大話設計模式 來祭奠那逝去的 模板方法模式 定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重新定義改演算法的某些特定步驟,例如現實生活中的簡歷模板 模板等等 模板...

《大話設計模式》 模板模式

題目 相同的兩份試卷,甲乙兩個人做,答案不同 public class testpager protected string answer public class testpagera extends testpager public class testpagerb extends testpa...