Python
設計模式
以生產Pizza為例子
定義Pizza類別以及其子類別
class pizza:
def __init__(self):
self.taste = 'material'
self.place = ''
def make(self):
print('put %s on pizza' % self.taste)
def bake(self):
print('put in oven')
def finish(self):
print('You can eat')
def PrintPlace(self):
print(self.place)
def run(self):
self.make()
self.bake()
self.finish()
self.PrintPlace()
class baconPizza(pizza):
def __init__(self):
super().__init__()
self.taste = 'bacon'
class seafoodPizza(pizza):
def __init__(self):
super().__init__()
self.taste = 'seafood'
簡單工廠模式
一
class PizzaSimpleFatory:
def makePizza(str):
if str == 'bacon':
return baconPizza()
elif str == 'seafood':
return seafoodPizza()
二
class PizzaFactoryMethod:
def makePizza(obj):
return obj
三
class PizzaFactoryMethod2:
def makeBaconPizza():
return baconPizza()
def makeSeafoodPiazz():
return seafoodPizza()
class PizzaFactoryMethod:
def makePizza(obj):
return obj
三
class PizzaFactoryMethod2:
def makeBaconPizza():
return baconPizza()
def makeSeafoodPiazz():
return seafoodPizza()
工廠方法模式
class PizzaFactoryMethod:
def makePizza(self):
return baconPizza()
class PizzaFactoryMethod2:
def makeSeafoodPiazz():
return seafoodPizza()
抽象工廠模式
定義各個地方工廠,再將地方放入抽象工廠工。
class TaiwanPizzaFactory:
def makePizza(obj):
obj.place = 'Taiwan'
return obj
class JapanPizzaFactory:
def makePizza(obj):
obj.place = 'Japan'
return obj
class AmericaPiazzFactory:
def makePizza(obj):
obj.place = 'America'
return obj
class PizzaAbstractFactory:
def MakeFactory(obj):
return obj
設計模式應用概念說明
在此種模式下,主要目的是要管理物件生成的介面,當物件的類別越來越多,使得他有多種屬性時,就會有不同工廠進行生產,因次進一步管理工廠,而出現抽象工廠。
思考面向,遊戲中的裝備,有分職業、男女、等級,要怎樣寫會比較好?
思考面向,螺絲,分尺寸、牙紋類別、長度等屬性,要怎樣寫會比較好?
留言
張貼留言