設計模式學習筆記 模板方法

2022-01-18 04:04:26 字數 1033 閱讀 4157

概述:

模板方法(templatemethod):定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。

templatemethod使得子類可以不改變乙個演算法的結構即可以重定義該演算法的某些特定步驟。

實用性:

1.一次性實現乙個演算法的不變的部分,並將可變的行為留給子類來實現。

2.各子類中公共的行為應被提取出來並集中到乙個公共類中以避免**重複。

首先識別現有**的不同之處,並且將不同之處分離為新的操作。

最後,用乙個呼叫這些新的操作的模板方法來替換這些不同的**。

3.控制子類的擴充套件

類圖:

結構展示**:

1.定義抽象父類

abstract

class

abstractclass

}

2.定義實現演算法的子類

class

concreteclassa:abstractclass

public

override

void

primitiveoperation2()

}class

concreteclassb:abstractclass

public

override

void

primitiveoperation2()

}

3.客戶端呼叫

//////

測試模板方法

///static

void

testtemplatemethod()

小結:模板方法就是最簡單的**復用和封裝,在很多系統類庫中都有使用,讓你的系統的結構更加合理

設計模式筆記 模板方法模式

模板方法模式 定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。模板方法模式有兩個角色 public abstract class abstractclass public class concreteclassa e...

設計模式學習 模板方法模式

型別 行為模式 模板方法模式定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些 特定步驟。uml圖 新建賽車的父類 package car package public class car parent public void setsp...

設計模式學習 模板方法模式

1.雜言 設計模式,現在覺得每種模式像工業行業的一些典型零件。這些零件也可以變種出很多類似零件。吧這些零件組合起來,就成了一台機器。好吧,我現在是這麼理解的。一般 結構都是,一層呼叫一層,就是一般都是頂層的呼叫底層的。但模板方法確實反過來的,有父類呼叫子類的方法。這個聽說又牽扯到啥好萊塢原則。對於這...