IOS設計模式學習(18)模板方法

2021-12-29 20:43:45 字數 590 閱讀 4769

1 前言

模板方法模式是物件導向軟體設計中一種非常簡單的設計模式。其基本思想是在抽象類的乙個方法定義「標準」演算法。在這個方法中呼叫的基本操作由子類過載予以實現。這個方法成為「模板」。因為方法定義的演算法缺少一些特有的操作。

2 詳述

2.1 簡述

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

2.2 何時使用

(1)需要一次性實現演算法的不變部分,並將可變得行為留給子類來實現。

(2)子類的共同行為應該被提取出來放到公共類中,以避免**重複。現有**的差別應該被分離為新的操作。然後用乙個呼叫這些新操作的模板方法來替換這些不同的**。

(3)需要控制子類的擴充套件。可以定義乙個在特定點呼叫「鉤子」(hook)操作的模板方法。子類可以通過鉤子操作的實現在這些點擴充套件功能。

2.3 模板方法呼叫5種型別的操作

(1)對具體類或客戶端類的具體操作;

(2)對抽象類的具體操作;

(3)抽象操作;

(4)工廠方法;

(5)鉤子操作。

3 結語

以上是所有內容,希望對大家有所幫助。

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

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

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

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

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

模板方法模式 定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟.父類就應該要成為子類的模板,所有重複的 都應該要上公升到父類中,而不是讓每個子類都取重複,重要,複雜的演算法,可以把核心演算法設計為模板方法,周邊的相關細...