1. 程式人生 > 程式設計 >python模式 工廠模式原理及例項詳解

python模式 工廠模式原理及例項詳解

這篇文章主要介紹了python模式 工廠模式原理及例項詳解,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

工廠模式是一個在軟體開發中用來建立物件的設計模式。

工廠模式包涵一個超類。這個超類提供一個抽象化的介面來建立一個特定型別的物件,而不是決定哪個物件可以被建立。

為了實現此方法,需要建立一個工廠類建立並返回。

當程式執行輸入一個“型別”的時候,需要創建於此相應的物件。這就用到了工廠模式。在如此情形中,實現程式碼基於工廠模式,可以達到可擴充套件,可維護的程式碼。當增加一個新的型別,不在需要修改已存在的類,只增加能夠產生新型別的子類。

簡短的說,當以下情形可以使用工廠模式:

1.不知道使用者想要建立什麼樣的物件

2.當你想要建立一個可擴充套件的關聯在建立類與支援建立物件的類之間。

一個例子更能很好的理解以上的內容:

我們有一個基類Person ,包涵獲取名字,性別的方法 。有兩個子類male 和female,可以打招呼。還有一個工廠類。
工廠類有一個方法名getPerson有兩個輸入引數,名字和性別。
使用者使用工廠類,通過呼叫getPerson方法。

在程式執行期間,使用者傳遞性別給工廠,工廠建立一個與性別有關的物件。因此工廠類在執行期,決定了哪個物件應該被建立。

class Person:
  def __init__(self):
    self.name = None
    self.gender = None

  def getName(self):
    return self.name

  def getGender(self):
    return self.gender

class Male(Person):
  def __init__(self,name):
    print "Hello Mr." + name

class Female(Person):
  def __init__(self,name):
    print "Hello Miss." + name

class Factory:
  def getPerson(self,name,gender):
    if gender == 'M':
        return Male(name)
    if gender == 'F':
        return Female(name)


if __name__ == '__main__':
  factory = Factory()
  person = factory.getPerson("Chetan","M")

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。