python 状态模式_Python设计模式(11)-状态模式

# 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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值