package memento;
public class Originator {
/**
* Хранитель, определенный в виде
* внутреннего члена класса Originator-а
*/
public class Memento {
/* "Узкий" открытый интерфейс хранителя,
* доступный всем
*/
public void CompressMementoState() {
/* ..Оптимизируем размер, занимаемым хранителем.. */
}
public int GetMementoSize() {
int res = 0;
/* ..Вычисляем размер, занимаемый хранителем.. */
return res;
}
/* "Широкий" закрытый интерфейс хранителя,
* доступный только хозяину (Originator-у в данном случае)
*/
private Memento() {
/* ... */
}
private void SetState
(State state
) { /* ... */
}
private State GetState
() { /* ... */
return res;
}
}
/* Методы, интерфейс хозяина
*/
public Memento CreateMemento() {
Memento res = null;
/* .. */
return res;
}
public void SetMemento(Memento mem) { /* ... */ }
}
}