25 lines
470 B
C#
25 lines
470 B
C#
namespace MementoPattern;
|
|
|
|
public class Caretaker
|
|
{
|
|
//container that could hold memento of Originator
|
|
//object
|
|
private readonly Stack<IMemento> _mementos = new();
|
|
private readonly IOriginator _originator;
|
|
|
|
public Caretaker(IOriginator originator)
|
|
{
|
|
_originator = originator;
|
|
}
|
|
|
|
public void Save()
|
|
{
|
|
_mementos.Push(_originator.GetMemento());
|
|
}
|
|
|
|
public void Undo()
|
|
{
|
|
_originator.SetMemento(_mementos.Pop());
|
|
}
|
|
}
|