設計模式(十) 模板模式

2021-09-22 16:58:56 字數 1093 閱讀 8176

模板模式通常又叫模板方法模式(template method pattern)是指定義乙個演算法的骨架,並允許子類為乙個或多個步驟提供實現。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法的某些步驟,屬於行為性設計模式。

比如購買商品一般都有固定的流程,比如先檢視庫存,然後生成訂單,折扣活動,最後扣款等。在這個過程中大部分的流程是不變的,只有折扣活動這部分會經常變化。

首先建立介面

public

inte***ce

order

建立抽象類實現該介面,將固定的流程實現,需要擴充套件的方法寫成抽象類交給子類重寫

public

abstract

class

ordertemplate

implements

order

protected

void

discount

(string productid)

}

建立兩種下單實現,雙11和vip使用者的下單實現類

public

class

doubleelevenorder

extends

ordertemplate

}public

class

viporder

extends

ordertemplate

}

建立測試類入口

public

class

templatetest

}

利用模板方法將相同處理邏輯的**放到抽象父類中,可以提高**的復用性。

將不同的**不同的子類中,通過對子類的擴充套件增加新的行為,提高**的擴充套件性。

把不變的行為寫在父類上,去除子類的重複**,提供了乙個很好的**復用平台,符合開閉原則。

1、類數目的增加,每乙個抽象類都需要乙個子類來實現,這樣導致類的個數增加。

2、類數量的增加,間接地增加了系統實現的複雜度。

3、繼承關係自身缺點,如果父類新增新的抽象方法,所有子類都要改一遍。

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

一 概述 模板方法模式在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。二 結構類圖 三 解決問題 模板方法就是提供乙個演算法框架,框架裡面的步驟有些是父類已經定好的,有些需要子類自己實現。相當於要去辦一件事情,行...

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

感覺就是父類中定義個方法的介面,讓子類去具體實現,每個子類的實現方式都不一樣。既然用了繼承,並且肯定這個繼承有意義,就應該要成為子類的模板,所有重複的 都應該要上公升到父類去,而不是讓每個子類都去重複。當我們要完成在某一細節層次一致的乙個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時...

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

在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...