❓ Расскажите о паттерне Memento
Memento — это поведенческий паттерн, который позволяет сохранять и восстанавливать прежнее состояние объекта, не нарушая инкапсуляцию.
Простыми словами: Ctrl+Z в любом редакторе — где-то хранится снимок предыдущего состояния, к которому можно откатиться.
▪️ Когда использовать
— Нужна функция отмены/отката (undo)
— Нужно сохранять контрольные точки состояния
— Прямой доступ к полям объекта нарушил бы инкапсуляцию
▪️ Memento vs Command
— Command: хранит действие и умеет его отменить
— Memento: хранит полный снимок состояния
▪️ Минус
Может потреблять много памяти, если состояние объекта большое и снимки создаются часто.
Post #1287
2.43K
- 👍 4
- 🔥 1
- 👏 1