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