状态模式

模式说明

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

模式结构图

状态模式

程序示例

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

代码:

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

 

你可能感兴趣的:(状态模式)