[Behavioral 6] Memento design pattern with TypeScript example

[Behavioral 6] Memento design pattern with TypeScript example

Краткое резюме

В этом видео рассматривается паттерн проектирования "Memento" (Меморандум). Паттерн позволяет сохранять состояние объекта и восстанавливать его впоследствии. Примеры использования: отмена/повтор действий в редакторе, сохранение состояния игры.

  • В видео демонстрируется реализация паттерна на TypeScript.
  • Пример использования: текстовый редактор, где можно сохранять историю изменений.

Memento: Сохранение состояния объекта

В видео представлен пример реализации паттерна "Memento" на TypeScript. В качестве примера используется текстовый редактор, где можно сохранять историю изменений.

Класс Memento:

  • Хранит состояние объекта.
  • Имеет метод getState(), который возвращает сохраненное состояние.

Класс Originator (Текстовый редактор):

  • Сохраняет свое состояние в объект Memento.
  • Имеет методы createMemento(), setMemento(memento), getState().

Класс Caretaker (История редактора):

  • Хранит список объектов Memento.
  • Имеет методы addMemento(memento), getMemento(index).

В видео демонстрируется, как можно использовать эти классы для сохранения и восстановления состояния текстового редактора.

Пример:

  • Создается объект редактора и объект истории.
  • В редактор вводятся три строки текста.
  • Сохраняется состояние редактора в объект Memento и добавляется в историю.
  • Выполняется отмена последнего действия (удаление последней строки).
  • Выполняется еще одна отмена (удаление предпоследней строки).

В результате, после двух отмен, в редакторе остается только первая строка текста.

10/12/2024 Source
Share

Don't Waste Time! Download Summ – the best YouTube video summarizer!

Download on the Apple Store
© 2024 Summ