设计模式 状态模式

class WorkState:
    def __init__(self):
        pass
    def work(self):
        pass

class Monday(WorkState):
    def work(self, w):
        if w.day == 1:
            print('no happy')
        else:
            w.setState(TueToFri())
            w.work()

class TueToFri(WorkState):
    def work(self, w):
        if w.day > 1 and w.day < 6:
            print('little happy')
        else:
            w.setState(Weekend())
            w.work()

class Weekend(WorkState):
    def work(self, w):
        if w.day >= 6 and w.day <= 7:
            print('happy')
        else:
            w.setState(NoVailidDay())
            w.work()

class NoVailidDay(WorkState):
    def work(self, w):
        if w.day > 7:
            print('no valid day')

class Context:
    state = Monday()
    day = 2
    def setState(self, state):
        self.state = state
    def work(self):
        self.state.work(self)

if __name__ == '__main__':
    context = Context()
    context.work()

猜你喜欢

转载自www.cnblogs.com/agang-php/p/9951239.html