python創造者 python實現建造者模式

2021-10-11 16:55:23 字數 2079 閱讀 4065

#具體產品物件

classmenu:

menu_a=

menu_b=defset_menua(self,item):

classproduct:

product=menu()defbuild_hanbao(self):pass

defbuild_jiroujuan(self):pass

defbuild_kele(self):pass

defbuild_shutiao(self):pass

#concretebuilder(具體建造者)#實現抽象介面,構建和裝配各個部件。#**a

classproduct_a(product):def __init__(self):

self.producttype="a"

defbuild_hanbao(self):

self.hanbao="漢堡"self.product.set_menua(self.hanbao)defbuild_kele(self):

self.kele="可樂"self.product.set_menua(self.kele)defgettype(self):returnself.producttype#**b

classproduct_b(product):def __init__(self):

self.producttype= "b"

defbuild_shutiao(self):

self.shutiao="薯條"self.product.set_menub(self.shutiao)defbuild_jiroujuan(self):

self.jiroujuan="雞肉卷"self.product.set_menub(self.jiroujuan)defbuild_kele(self):

self.kele="可樂"self.product.set_menub(self.kele)defgettype(self):returnself.producttype#director(指揮者)

classmake:def __init__(self):

self.builder=nonedefbuild_product(self, builder):

self.builder=builderprint(builder.producttype)if builder.producttype == "a":

[step()for step in(builder.build_hanbao,

builder.build_kele)]if builder.producttype == "b":

[step()for step in(builder.build_shutiao,

builder.build_jiroujuan,

builder.build_kele)]#不同型別選擇

defvalidate_style(builders):globalvalid_inputtry:print('**a:漢堡、可樂'+'\n'

'套裝b:薯條、雞肉卷、可樂')

product_style= input('請輸入您的選擇:')

builder=builders[product_style]()

valid_input=trueexceptkeyerror as err:print('sorry, 沒有這個**,請重新選擇。')return(false, none)return(true, builder,product_style)#主函式

defmain():

builders= dict(a=product_a, b=product_b)

valid_input=falsewhile notvalid_input:

valid_input, builder,product_style=validate_style(builders)

waiter=make()

waiter.build_product(builder)if product_style == "a":print(builder.product.get_menua())else:print(builder.product.get_menub())if __name__ =="__main__":

main()

python創造者 Python 建造者模式

usr bin python coding utf 8 建造者基類 class personbuilder def buildhead self pass def buildbody self pass def buildarm self pass def buildleg self pass 胖子...

python創造者 Python3 實現建造者模式

建造者模式 建造者模式用於建立複雜的物件。使用建造者模式可以使複雜的過程層次明了 清晰,把物件的建立以及使用進行了解耦。實際上從 的角度上看,是進行了多次封裝,使 結構更為規範合理,層次結構更加鮮明。在乙個複雜的物件中,需要編寫大量的 去實現這乙個類,並且在進行初始化時,也有可能會有大量的引數去進行...

創新者和創造者之間有本質的區別

創新者和創造者之間有本質的區別。tom grasty這樣寫道。創造,是指第一次將乙個產品做出來,或者第一次引入乙個程序。愛迪生是乙個創造者。而某個人對乙個已經存在的事物做了改進或者重大貢獻時,也就有了創新。賈伯斯是乙個創新者。ok,現在大家知道這兩個概念的區別了,那對企業家來說又意味著什麼呢?你不能...