Skip to content

Latest commit

 

History

History
41 lines (36 loc) · 723 Bytes

File metadata and controls

41 lines (36 loc) · 723 Bytes

Memento

https://refactoring.guru/ja/design-patterns/memento

ネストされたクラスに基づく実装

classDiagram
  class Originator {
    save() Memento
    restore(m: Memento)
  }
  class Memento {
  }
  class Caretaker {
  }
  Caretaker o--> Memento
  Originator --> Memento
  Caretaker --> Originator
Loading

クラスのネストをサポートしない言語に適した代替実装

classDiagram
  class Originator {
    save() Memento
    restore(m: Memento)
  }
  class Memento {
    <<interface>>
  }
  class ConcreteMemento {
  }
  class Caretaker {
  }
  ConcreteMemento ..|> Memento
  Caretaker o--> Memento
  Originator --> ConcreteMemento
  Caretaker --> Originator
Loading