python设计模型_常见的设计模型(python)——建造者模型

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值