状态模式

状态模式

 

模式说明

当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

模式结构图

程序示例

说明:程序员一天不同时刻的状态

代码:

复制代码
import time

class IState(object):
    def work(self):
        pass
class Programer(object):
    _state = IState()
    def __init__(self,hour):
        if hour < 9:
            self._state = restState()
        elif hour < 18:
            self._state = programState()
        else:
            self._state = gameState()

    def work(self):
        
        self._state.work()

class programState(IState):
    def work(self):
        print 'programming!'

class gameState(IState):
    def work(self):
        print 'playing game!'

class restState(IState):
    def work(self):
        print 'rest time!'


if __name__ == '__main__':
    hour = int(time.strftime("%H"))
    programer = Programer(hour)
    programer.work()
复制代码

运行结果:(和当前时间有关)

参考来源:

http://www.cnblogs.com/chenssy/p/3679190.html

http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html

http://www.cnblogs.com/wangjq/archive/2012/07/16/2593485.html

posted @ 2019-07-09 10:22  贤者之石  阅读(137)  评论(0编辑  收藏  举报