【设计模式】备忘录模式

class Memento:

    def __init__(self, state):
        self.state = state

    def set_state(self, state):
        self.state = state

    def get_state(self):
        return self.state

class Caretaker:

    def __init__(self):
        self.memento_table = {}

    def set_memento(self, key, memento):
        self.memento_table[key] = memento

    def get_memento(self, key):
        return self.memento_table[key]


class Orignator:

    def set_state(self, state):
        self.state = state

    def get_state(self):
        return self.state

    def create_memento(self):
        return Memento(self.state)

    def restore_memento(self, memento):
        self.set_state(memento.get_state())

if __name__ == '__main__':
    o = Orignator()
    c = Caretaker()

    o.set_state({'data':'s1'})
    print('初始状态',o.get_state())
    c.set_memento(1,o.create_memento())
    o.set_state({'data':'s2'})
    print('新的状态',o.get_state())

    c.set_memento(2,o.create_memento())
    o.restore_memento(c.get_memento(1))
    print(o.get_state())

    print(c.memento_table)
上一篇:python中常用的内置函数


下一篇:函数(二)