static void Main(string[] args) { // Клиентский код. Originator originator = new Originator("Super-duper-super-puper-super."); Caretaker caretaker = new Caretaker(originator); caretaker.Backup(); originator.DoSomething(); caretaker.Backup(); originator.DoSomething(); caretaker.Backup(); originator.DoSomething(); Console.WriteLine(); caretaker.ShowHistory(); Console.WriteLine("\nClient: Now, let's rollback!\n"); caretaker.Undo(); Console.WriteLine("\n\nClient: Once more!\n"); caretaker.Undo(); Console.WriteLine(); }
public void Undo() { var memento = _caretaker.Undo(); if (memento != null) { _originator.RestoreState(memento); } Console.WriteLine($"Current state: {GetStateValue()}"); }