Python设计模式(11)-状态模式
2016-03-15 21:49
627 查看
# coding=utf-8 # *状态模式:一个方法的判断逻辑太长,就不容易修改。方法过长,其本质就是, # * 就是本类在不同条件下的状态转移。状态模式,就是将这些判断分开到各个能 # * 表示当前状态的独立类中 class State: def persion_state(self): pass class SomeDay: def __init__(self): self.time = 8 self.current = Breakfast() def set_state(self, temp): self.current = temp def persion_state(self): self.current.persion_state(self) class Breakfast(State): def persion_state(self, some_day): if (some_day.time < 8): print "吃早饭" else: some_day.set_state(Lunch()) some_day.persion_state() class Lunch(State): def persion_state(self, some_day): if (some_day.time < 12): print "吃午饭" else: print "吃晚饭" if __name__ == "__main__": some_day = SomeDay() some_day.time = 11 some_day.persion_state() some_day.time = 15 some_day.persion_state()
相关文章推荐
- PythonChallenge Mission 12
- 用Python语言写Hadoop MapReduce程序Writing an Hadoop MapReduce Program in Python
- python常见面试问题
- Python设计模式(10)-模板模式
- python图片转字符
- python学习4 常用内置模块
- PythonChallenge Mission 11
- Python ImportError: No module named XXX
- python中import失败解决的简单办法
- Python错误处理
- 一行 Python 实现并行化 -- 日常多线程操作的新思路 - 左手键盘,右手书 - SegmentFault
- python from multiprocessing import Pool,Process,Value,Array,Manager
- EigenFace的使用 python
- python 之socket语法及相关
- Type 3字体的解决办法
- Python琐碎知识总结
- 中文维基百科上的word2vec实验,python及java版本
- Python3缩进对逻辑的影响
- Python3缩进对逻辑的影响
- Python正则表达式,re模块