建造者模式(python)
来源:互联网 发布:网络综合布线图 编辑:程序博客网 时间:2024/05/18 14:26
"""建造者模式对复杂对象进行构建过程和表现层的分离,使得一套构建过程能够创建出不同的对象产品"""from abc import ABCMeta, abstractmethodclass Food(object): def __init__(self): self._has_salt = 0 self._has_oil = 0 self._has_water = 0 pass def set_salt(self, value): self._has_salt = value def set_oil(self, value): self._has_oil = value def set_water(self, value): self._has_water = value def eat(self): if self._has_oil and self._has_water and self._has_salt: print("评论:很好吃") else: print("评论:不能吃")class CookBuilder(object): __metaclass__ = ABCMeta def __init__(self): pass @abstractmethod def put_salt(self): pass @abstractmethod def put_oil(self): pass @abstractmethod def put_water(self): passclass GoodCookBuilder(CookBuilder): def __init__(self): super(GoodCookBuilder, self).__init__() self.food = Food() def put_salt(self): print("放合适的盐") self.food.set_salt(1) def put_oil(self): print("放合适的油") self.food.set_oil(1) def put_water(self): print("放合适的水") self.food.set_water(1) def get_food(self): return self.foodclass BadCookBuilder(CookBuilder): def __init__(self): super(BadCookBuilder, self).__init__() self.food = Food() def put_salt(self): print("放太多盐") self.food.set_salt(0) def put_oil(self): print("没放油") self.food.set_oil(0) def put_water(self): print("水放的挺好") self.food.set_water(1) def get_food(self): return self.foodclass CookDirector(object): def __init__(self): pass def cook(self, cook_builder): cook_builder.put_salt() cook_builder.put_oil() cook_builder.put_water()if __name__ == '__main__': # 先有个大厨(指挥者) cook_director = CookDirector() # 有个做好吃饭的流程 good_cook_builder = GoodCookBuilder() # 大厨指挥做好吃的饭 cook_director.cook(good_cook_builder) # 把经过一系列做饭流程做好的饭拿出来 good_food = good_cook_builder.get_food() # 吃下饭,发表意见 good_food.eat() print("") # ####做不好吃的饭 bad_cook_builder = BadCookBuilder() cook_director.cook(bad_cook_builder) bad_food = bad_cook_builder.get_food() bad_food.eat()
0 0
- 建造者模式(python)
- 建造者模式(python实现)
- python 建造者模式(实现,特点)
- 设计模式之python版(九)--建造者模式
- 设计模式六(建造者模式,采用python实现)
- Python设计模式(五)【建造者模式】
- Python设计模式-建造者模式
- 设计模式-建造者模式-builder-python
- python设计模式(建造者模式)
- Python设计模式--建造者模式
- python设计模式之建造者
- 设计模式之十三 建造者模式(建造小人)
- 设计模式之建造型-建造者模式(4)
- 建造者(Builder)模式
- 建造者(Builder)模式
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者(Builder)模式
- hdu Employment Planning(DP)
- 设计模式--策略模式
- 【ARM-Linux开发】如何使用opkg在RicoBoard上在线安装软件包
- javascript年月份计时器简易制作
- java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors
- 建造者模式(python)
- 2016反思以及后续规划
- C++ Maps & MultiMaps
- CentOS 5/6/7网卡绑定方案
- Spring Boot系列教程六:日志输出配置log4j2
- ACM测试---5-6 帅到没朋友 (20分)
- 命令模式(python)
- ASP.Net: EshineASPNet教程-身份证校验与正则
- 【ARM-Linux开发】Rico Board DIY系列实验教程 Day 2——搭建Boa服务器