跳到主要內容


python-設計模式-裝飾模式

python
設計模式
裝飾模式


class Hamberger: 
   def __init__(self): 
      self.price = 0 
      self.meat = '' 
   def GetPrice(self): 
      print(self.price) 

class PigHamberger(Hamberger): 
   def __init__(self): 
      self.price = 35 
      self.meat = 'Pig' 

class BeefHamberger(Hamberger): 
    def __init__(self): 
       self.price = 45 
       self.meat = 'Beef' 

class Decorator(Hamberger): 
    def __init__(self, hamberger): 
       self.price = hamberger.price 
       self.meat = hamberger.meat 

class EggDecorator(Decorator):
    def __init__(self,hamberger): 
       super().__init__(hamberger) 
    def GetPrice(self): 
       self.price += 5 
       self.meat = self.meat + ' with Egg' 
       print(self.price) 

class CheeseDecorator(Decorator): 
    def __init__(self, hamberger): 
       super().__init__(hamberger) 
    def GetPrice(self): 
       self.price += 5 
       self.meat = self.meat + ' with Cheese' 
       print(self.price) 

pigHamberger = PigHamberger() 
pigHamberger.GetPrice() 
EGG1 = EggDecorator(pigHamberger) 
EGG1.GetPrice() print(EGG1.meat) 
EGG2 = EggDecorator(EGG1) 
EGG2.GetPrice() 
print(EGG2.meat) 
C = CheeseDecorator(EGG2) 
C.GetPrice() print(C.meat) 
beefHamberger = BeefHamberger() 
beefHamberger.GetPrice() 
EGG1 = EggDecorator(beefHamberger) 
EGG1.GetPrice() 
print(EGG1.meat) 
EGG2 = EggDecorator(EGG1) 
EGG2.GetPrice() 
print(EGG2.meat) 
C = CheeseDecorator(EGG2) 
C.GetPrice() 
print(C.meat) 

程式碼說明

定義漢堡類別,定義豬肉口味漢堡,定義牛肉口味漢堡,定義裝飾模式,定義加蛋,定義加起司
以下為測試

留言

這個網誌中的熱門文章

Python-資料庫-mongodb-pymongo

Python 資料庫 mongodb-pymongo 安裝: linux、mac:pip3 install pymongo windows: import pymongo client = pymongo.MongoClient("mongodb://localhost:27017/") db = client['demo_db'] col = db['demo_col'] dict1 = { "name": "ab123ab456g", "day": "1890-04-05" } result = col.insert_one(dict1)  dict2 = [   { "name": "ki", "day": "1666-1-1"},   { "name": "aa", "day": "1222-11-11"},   { "name": "gg-gg", "day": "1333-02-22"},   { "name": "T-T", "day": "1444-03-02"},   { "name": "f-f", "day": "1555-01-01"} ] result = col.insert_many(dict2) result = col.find_one() print(result) results = col.find() for result in col.find(): print(result) results = col.find() query = {'...

語言學習-English-Lights

Song Lyric Title : Lights Singer :Ellie Goulding Album :  Bright Lights Release Date :  2011 I had a way then losing it all on my own I had a heart then but the queen has been overthrown And I'm not sleeping now the dark is too hard to beat And I'm not keeping up the strength I need to push me You show the lights that stop me turn to stone You shine it when I'm alone And so I tell myself that I'll be strong And dreaming when they're gone 'Cause they're calling, calling, calling me home Calling, calling, calling home You show the lights that stop me turn to stone You shine them when I'm alone Noises, I play within my head Touch my own skin and hope they'll still be there And I think back to when my brother and my sister slept In and on my place the only time I feel safe You show the lights that stop me turn to stone You shine it when I'm alone And so I tell myself that I'...

程式語言學習概論(1)

程式語言 介紹