首页 > 编程语言 > 详细

Python设计模式(11)-状态模式

时间:2016-03-15 23:07:26      阅读:305      评论:0      收藏:0      [点我收藏+]
# 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()

Python设计模式(11)-状态模式

原文:http://www.cnblogs.com/zijiyanxi/p/5281370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!