I believe it should be Command design pattern.
Here is article about multilevel Undo/Redo with Command pattern.
EDIT: Here is second about multilevel Undo/Redo with Memento pattern.
So probably it can be done with both.
More Related Contents:
- Design Pattern for Undo Engine
- On design patterns: When should I use the singleton?
- Why is Singleton considered an anti-pattern? [duplicate]
- Ways to eliminate switch in code [closed]
- In a PHP project, what patterns exist to store, access and organize helper objects? [closed]
- Are Singletons really that bad? [duplicate]
- How do the Proxy, Decorator, Adapter, and Bridge Patterns differ?
- Factory Pattern. When to use factory methods?
- How will I know when to create an interface?
- Why do we need Abstract factory design pattern?
- What’s the difference between the Dependency Injection and Service Locator patterns?
- Which Typesafe Enum in C++ Are You Using?
- Naming Classes – How to avoid calling everything a “Manager”? [closed]
- Dependency Injection & Singleton Design pattern
- Are utility classes evil? [closed]
- Is UnitOfWork equals Transaction? Or it is more than that?
- How to implement Builder pattern in Kotlin?
- What is a Proxy in Doctrine 2?
- Which design patterns can be applied to the configuration settings problem?
- Difference between Bridge pattern and Adapter pattern
- What is the difference between Builder Design pattern and Factory Design pattern? [closed]
- What’s the difference between design patterns and architectural patterns? [closed]
- Are there any viable alternatives to the GOF Singleton Pattern?
- What is the difference between Strategy design pattern and State design pattern?
- REST API Login Pattern
- How do you know when to use design patterns? [closed]
- Static factory methods vs Instance (normal) constructors?
- What would a Log4Net Wrapper class look like?
- When do we need decorator pattern?
- Difference betwen Visitor pattern & Double Dispatch