• 状态模式


    模式说明

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

    模式结构图

    程序示例

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

    代码:

    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

  • 相关阅读:
    Linux安装phpMywind
    CentOS7安装virtualbox
    MySQL3534
    DIV盒子介绍
    HTML选择器
    人脸检测
    openblas下载安装编译
    DeepLearning网络设计总结
    Linux命令替换字符串
    Y7000联想拯救者gtx1050Ti安装cuda9.0
  • 原文地址:https://www.cnblogs.com/cotton/p/3935277.html
Copyright © 2020-2023  润新知