首页 > 编程语言 > 详细

python状态模式实现状态切换

时间:2018-01-25 12:44:53      阅读:348      评论:0      收藏:0      [点我收藏+]
# -*- coding:UTF-8 -*-
import abc


class State(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def handle(self, context):
        pass


class ConcreteStateA(State):
    def handle(self, context):
        context.state = ConcreteStateB()


class ConcreteStateB(State):
    def handle(self, context):
        context.state = ConcreteStateA()


class Context:
    def __init__(self, state):
        self.__state = state

    @property
    def state(self):
        return self.__state

    @state.setter
    def state(self, value):
        self.__state = value
        print("当前状态:%s" % self.__state.__class__.__name__)

    def request(self):
        self.__state.handle(self)


if __name__ == "__main__":
    c = Context(ConcreteStateA())
    c.request()
    c.request()
    c.request()
    c.request()
    c.request()

 

python状态模式实现状态切换

原文:https://www.cnblogs.com/gjinwei/p/8350598.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!