設計模式之四 模板方法模式

2021-07-30 16:33:54 字數 1104 閱讀 3241

設計模式之四:模板方法模式

(出處: 【泰斗社群】-專注網際網路遊戲和應用的開發者平台)

模板方法模式(template method pattern):

定義:define the skeleton of an algorithm in an operation,deferring some steps to subclasses . template method lets subclasses redefine certain

steps of an algorithm without changing the algorithm's structure.(定義乙個操作中的演算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變演算法

的結構即可重定義該演算法的某些特定步驟)。

類圖:

優點:1、封裝不變部分,擴充套件可變部分;

2、提取公共部分**,便於維護

3、行為有父類控制,子類實現

缺點:每個不同的實現都需要定義乙個子類,這會導致類的個數增加,系統更加龐大,設計也更加抽象,但是更加符合「單一職責原則」,使得類的內聚性得以提高。

使用場景:

1、多個子類有公共的方法,並且邏輯基本相同

2、重要、複雜的演算法,可以把核心演算法設計模板方法,周邊的相關細節功能則有各個子類實現

實現

public abstract class abstractclass

}//具體模板a**

public class concreteclassa:abstractclass

//實現基本方法2

public override void primitiveoperation2()

}//具體模板b**

public class concreteclassb:abstractclass

//實現基本方法2

public override void primitiveoperation2()

}//場景類

public class client

}

設計模式(四)模板方法模式

先來想想第乙個問題,為什麼叫模板方法呢?答 模板模板,肯定就是有一套固定的模式,說白了就是套路,一樣的套路,似曾相識的感覺。同樣,如果我們在開發中,同樣的套路出現n多次,必然導致專案難以維護,就需要對設計產生嚴重懷疑,架構師要不明確說明為什麼相同的邏輯要出現兩次或更多次,要不然,嘿嘿,有你好看的!因...

模板設計模式 PHP設計模式之模板方法模式

模板方法模式,也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重複的動作時,將他們提取出來,放在父類中進行統一的處理,這就是模板方法模式的最簡單通俗的解釋。就像我們平時做專案,每次的專案流程實都差不多,都有調研 開發 測試 部署上線等流程。而具體到每個專案中,這些流...

設計模式之模板方法設計模式

父類抽象出子類共有的方法,子類實現各自不同的業務。總之就是一種行為有他們共同的方法,只是他們具體的實現不一樣。比如開車這種行為模式,啟動 換擋 踩油門。每種型號品牌的車都有共同的行為,但是不同型號品牌的車的實現方式可能不同,需要每個品牌型號的車自己實現這些功能。這樣的定義上面行為的模式,稱之為模板方...