跳到主要內容


Python-設計模式-工廠模式

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(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

設計模式應用概念說明

在此種模式下,主要目的是要管理物件生成的介面,當物件的類別越來越多,使得他有多種屬性時,就會有不同工廠進行生產,因次進一步管理工廠,而出現抽象工廠。

思考面向,遊戲中的裝備,有分職業、男女、等級,要怎樣寫會比較好?
思考面向,螺絲,分尺寸、牙紋類別、長度等屬性,要怎樣寫會比較好?

留言

這個網誌中的熱門文章

程式語言學習概論(1)

程式語言 介紹

語言學習-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'...

Python-資料庫

Python 資料庫 基本概念說明 參考程式語言概念- 資料庫內容 。 對於這邊的介紹其實,主要是對基本語法、資料庫的基本操作進行說明,所以大多只會看到語法指令,而不會深究內容,因為其內容會在SQL跟noSQL的文章內容進行說明,這邊說明會讓篇幅太多。 常見的資料庫 SQL:MySQL NoSQL:Mongodb 以下是處理該類型檔案對應函式或模組 資料庫名稱 模組 MySql MySQLdb mysqlclient PyMySQL mysql.connector peewee SQLAlchemy Mongodb pymongo PyMySQL 用python全實作的model,需要下SQL語法。 範例- 連結 SQLAlchemy 用ORM的概念做出來,支援各種SQL資料庫。 範例- 連結 pymongo 專門用來連結mongodb的module 範例- 連結