我們有乙個基類person,包含方法get_name和get_gender 。有兩個子類male 和female,建構函式可以打招呼。還有乙個工廠類。工廠類有乙個方法名get_person有兩個輸入引數,名字和性別。
使用者使用工廠類,通過呼叫get_person方法。
在程式執行期間,使用者通過性別傳遞來決定例項為male還是female。
class person:
name = none
gender = none
def __init__(self):
pass
def get_name(self):
return self.name
def get_gender(self):
return self.gender
class male(person):
def __init__(self, name):
super(male).__init__()
self.gender = "male"
self.name = name
print("hello mr.{}".format(name))
class female(person):
def __init__(self, name):
super(female).__init__()
self.gender = "female"
self.name = name
print("hello miss.{}".format(name))
class factory:
def get_person(self, name, gender):
if gender == "m":
return male(name)
elif gender == "f":
return female(name)
else:
raise exception("please input 'm' or 'f'")
gender = "f"
if __name__ == '__main__':
factory = factory()
person = factory.get_person("lee", gender)
print(person.get_name())
print(person.get_gender())
輸出:hello miss.lee
leefemale
工廠模式 PYTHON
工廠模式屬於建立模式列表類別。它提供了建立物件的最佳方法。在工廠模式中,建立物件時不會將邏輯公開給客戶端,並使用通用介面引用新建立的物件。工廠模式使用工廠方法在python中實現。當使用者呼叫乙個方法時,傳入乙個字串,並通過工廠方法實現建立乙個新物件,並將此物件作為返回值。工廠方法中使用的物件型別由...
python 工廠模式
內容 定義要給用於建立物件介面 工廠介面 讓子類決定例項化哪乙個產品類 角色 抽象工廠角色 creator 具體工廠角色 concrete creator 抽象產品角色 product 具體產品角色 concrete product 工廠 建立物件 1個工廠 生產乙個產品 每個產品有自己對應工廠就可...
python 工廠模式
python 工廠模式 工廠模式 工廠 即表示乙個負責建立其他型別的物件的類,通常情況下,乙個工廠的物件會有乙個或多個方法與之關聯,這些方法用於建立不同型別的物件,工廠物件會根據客戶端給方法傳遞的不同的引數返回不同的物件。優點 物件的建立是可以根據需要單獨建立的,但是使用工廠模式來建立物件有以下優點...