源码故事
混沌初开,自盘古开天,人间无一物。
忽一日,天出异象,眺望远方,定睛一看,一位脚踏七彩祥云,手捧橡皮泥,的仙人出现了(后世称为女娲),女娲有个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() # 女娲拿胖人实例开造
最后
下一篇 工厂模型