Your SlideShare is downloading. ×
0
Memento
Memento
Memento
Memento
Memento
Memento
Memento
Memento
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Memento

136

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
136
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Паттерны проектирования Memento «Хранитель» Автор: Вадим Зубович Отдел автоматизации Coherent Solutions 1
  2. Паттерн Хранитель следует применять, когда: Необходимо сохранить внутреннее состояние объекта, для его последующего восстановления. Открытие прямого доступа к сохраняемым свойствам нарушит инкапсуляцию объекта и позволит несанкционированно манипулировать ими. 2
  3. Структура: Originator (Создатель, хозяин) Объект, имеющий внутреннее состояние, которое необходимо сохранить. Caretaker (Опекун, посыльный) Объект, вызывающий изменение внутреннего состояния создателя и имеющий возможность сохранять и восстанавливать его. Memento (Хранитель) Объект, в котором сохраняется внутреннее состояние создателя. 3
  4. Реализация* Пример: Приложение, позволяющее перемещать точку на форме, сохранять ее положение и восстанавливать его. *Код приложения по рассматриваемому примеру находится на TFS: $/CSI - Training Center/Clients/Automation/OOP/DP/Memento 4
  5. Рассмотрим код: Интерфейс IOriginator Класс Memento Класс Caretaker Класс Dot (Originator) 5
  6. Недостатки: Работает только с однотипными классами (для каждого Originator нужен свой Memento) Не позволяет сохранять последовательность действий с разными объектами (для Undo/Redo больше подходит паттерн Command Не готовит борщ 6
  7. Что следует почитать: ● ● ● Design Patterns: Elements of Reusable Object-oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995 – “Gang of Four” http://cpp-reference.ru/patterns/behavioralpatterns/memento/ http://habrahabr.ru/sandbox/39499/
  8. Спасибо за внимание! Вадим Зубович 8

×