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

2021-09-19 18:07:12 字數 847 閱讀 3196

定義乙個演算法或者流程,部分環節設計為外部可變,用類似於模板的思想來例項化乙個實體,可以往模板中填充不同的內容;在模板思想下,實體的整體框架是確定的,他是乙個模板,但是模板下內容可變,從而實現了動態的更新流程或演算法。

示例code:

# encoding=utf-8

"""實現乙個客戶點單後的處理流程流程"""

class

user:

def__init__

(self, name, shop, times, number):

self.name = name

self.shop = shop

self.times = times

self.number = number

class

handle:

def__init__

(self, user=none):

self.user = user

definvoicen

(self):

"""列印小票"""

make

(self):

"""開始製作"""

print("製作完成:{} 數量:{}".format(self.user.shop, self.user.number))

defrun

(self):

製作完成:漢堡 數量:5

看了模板方法後,感覺和之前的乙個設計模式比較相似《python設計模式(二):建造者模式》,但是建造者模式是將物件的構建和表示分離,相同的構建生成不同的表示物件,而模板方法是將定義的演算法或流程中的部分環節推遲到子類中實現演算法或流程的可變,這是二者本質的區別。

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

模式中的角色 抽象類 abstractclass 定義了演算法的骨架。具體類 concreteclass 實現抽象類中的抽象方法,已完成完整的演算法。抽象模板類 public abstract class abstractperson 以下是不同子類根據自身特性完成的具體步驟 protected a...

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

模板方法模式 template 是行為模式之一,其就是簡單定義乙個演算法執行骨架,而將其具體的演算法延遲到子類中實現,從而使出現過多的類的時候不用再改變演算法和結構直接新增乙個實現子類就可以了。一般在具體統一的操作步驟和業務功能,但是具有不同的細節處理,這樣用模板方法模式減少了 的復用 下面簡單的看...

python模板模式 模板設計模式

模板模式使用抽象操作在基類中定義基本演算法,其中子類覆蓋具體行為。模板模式將演算法的輪廓保留在單獨的方法中。該方法被稱為模板方法。以下是模板模式的不同功能 它定義了操作中演算法的骨架。它包括子類,它重新定義了演算法的某些步驟。有關模板設計模式的實現,請參考以下 class makemeal def ...