源碼故事
混沌初開,自盤古開天,人間無一物。
忽一日,天出異象,眺望遠方,定睛一看,一位腳踏七彩祥雲,手捧橡皮泥,的仙人出現了(後世稱爲女媧),女媧有個idea,如下:
人間如此荒涼,何不造一些活物。
說是實那時快,女媧已經造好了人類的原型(有雙手,雙腳,頭,身體)
女媧愣一想,人類不能都一樣,肯定有胖有瘦(於是基於人類外形,又創造了胖瘦原型)
編不下去了^_^
本文主要講python常見的設計模式 --- 建造者模式
上代碼...
源碼
from abc import ABCMeta, abstractmethod class Person(metaclass=ABCMeta): """ 導入抽象類,抽象裝飾器 ps:抽象類(實現基本接口,原型)不能被實例化,只能繼承(繼承類中實現抽象方法), 否則 TypeError: Can't instantiate abstract class... """ @abstractmethod def left_hand(self): pass @abstractmethod def right_hand(self): pass @abstractmethod def left_foot(self): pass @abstractmethod def right_foot(self): pass @abstractmethod def head(self): pass @abstractmethod def body(self): pass class Fat(Person): """胖人,繼承基類(人類)""" def left_hand(self): # 實現具體方法 print("胖左爪") def right_hand(self): print("胖左爪") def left_foot(self): print("胖左jio") def right_foot(self): print("胖右jio") def head(self): print("胖頭") def body(self): print("胖身體") class Thin(Person): """瘦人,繼承基類(人類)""" def left_hand(self): print("瘦左爪") def right_hand(self): print("瘦左爪") def left_foot(self): print("瘦左jio") def right_foot(self): print("瘦右jio") def head(self): print("瘦頭") def body(self): print("瘦身體") class WomanGod: """準備工作做完,女媧開始造人""" def __init__(self, person): # 這個傳遞實例對象(胖人或瘦人) self.person = person def make(self): # 女媧開始造(胖人或瘦人)的具體部位 self.person.left_hand() self.person.right_hand() self.person.left_foot() self.person.right_foot() self.person.head() self.person.body() if __name__ == "__main__": thin = Thin() # 胖人實例 fat = Fat() # 瘦人實例 woman_god = WomanGod # 女媧 woman_god(thin).make() # 女媧拿瘦人實例開造 woman_god(fat).make() # 女媧拿胖人實例開造
最後
下一篇 工廠模型