工廠模式是一個在軟件開發中用來建立對象的設計模式。設計模式
工廠模式包涵一個超類。這個超類提供一個抽象化的接口來建立一個特定類型的對象,而不是決定哪一個對象能夠被建立。spa
爲了實現此方法,須要建立一個工廠類建立並返回。 設計
當程序運行輸入一個「類型」的時候,須要建立於此相應的對象。這就用到了工廠模式。在如此情形中,實現代碼基於工廠模式,能夠達到可擴展,可維護的代碼。當增長一個新的類型,不在須要修改已存在的類,只增長可以產生新類型的子類。code
簡短的說,當如下情形能夠使用工廠模式:對象
1.不知道用戶想要建立什麼樣的對象blog
2.當你想要建立一個可擴展的關聯在建立類與支持建立對象的類之間。接口
一個例子更能很好的理解以上的內容:開發
在程序運行期間,用戶傳遞性別給工廠,工廠建立一個與性別有關的對象。所以工廠類在運行期,決定了哪一個對象應該被建立。get
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")