状态模式

模式说明

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

模式结构图

程序示例

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

代码:

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 @ 2014-08-25 16:32  棉花年度  阅读(111)  评论(0编辑  收藏  举报