日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python设计模式(十四):模板方法模式

發(fā)布時(shí)間:2023/12/6 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python设计模式(十四):模板方法模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

定義一個(gè)算法或者流程,部分環(huán)節(jié)設(shè)計(jì)為外部可變,用類似于模板的思想來實(shí)例化一個(gè)實(shí)體,可以往模板中填充不同的內(nèi)容;在模板思想下,實(shí)體的整體框架是確定的,他是一個(gè)模板,但是模板下內(nèi)容可變,從而實(shí)現(xiàn)了動態(tài)的更新流程或算法。


示例code:

#?encoding=utf-8

"""實(shí)現(xiàn)一個(gè)客戶點(diǎn)單后的處理流程流程"""


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

def?Invoicen(self):
"""打印小票"""
string?=?"打印小票"?\
"客戶:{}"?\
"商品:{}"?\
"數(shù)量:{}"?\
"時(shí)間:{}".format(self.user.name,?self.user.shop,?self.user.number,?self.user.times)
print(string)

def?Make(self):
"""開始制作"""
print("制作完成:{}?數(shù)量:{}".format(self.user.shop,?self.user.number))

def?run(self):
self.Invoicen()
self.Make()


if?__name__?==?'__main__':
test?=?Handle()
xiaoming?=?User("小明",?"漢堡",?"17:50",?"5")
test.user?=?xiaoming
test.run()
------------------
打印小票客戶:小明商品:漢堡數(shù)量:5時(shí)間:17:50
制作完成:漢堡?數(shù)量:5


看了模板方法后,感覺和之前的一個(gè)設(shè)計(jì)模式比較相似《python設(shè)計(jì)模式(二):建造者模式》,但是建造者模式是將對象的構(gòu)建和表示分離,相同的構(gòu)建生成不同的表示對象,而模板方法是將定義的算法或流程中的部分環(huán)節(jié)推遲到子類中實(shí)現(xiàn)算法或流程的可變,這是二者本質(zhì)的區(qū)別。



總結(jié)

以上是生活随笔為你收集整理的python设计模式(十四):模板方法模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。