• 状态模式


    模式说明

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

    模式结构图

    程序示例

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

    代码:

    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

  • 相关阅读:
    POJ3040--Allowance(贪心)
    Deep work
    湾区公司上班第一周
    三个现场面试
    协商薪资
    调节情绪,精神愉悦,健康快乐
    Phone interview guide 多说
    Campus Bikes
    降低软件复杂度 和 写注释写总结 2019-10
    某厂在线测试 2019.09.26
  • 原文地址:https://www.cnblogs.com/cotton/p/3935277.html
Copyright © 2020-2023  润新知