디자인 패턴/행위 패턴
Memento 패턴
언린이
2021. 11. 16. 10:38
Memento 패턴은 객체의 상태 정보를 가지는 클래스를 따로 생성하여, 객체의 상태를 저장하거나 이전 상태로 복원할 수 있게 해주는 패턴입니다.
구조
- Originator
- Memento 객체와 Memento 객체 상태를 복원하는 Caretaker 객체에 상태를 만들고 저장하는 클래스입니다.
- Memento
- Originator의 상태 정보를 저장하는 클래스입니다.
- Caretaker
- Originator의 저장과 복원을 제어하는 클래스입니다.
- 각 시점의 Memento 객체들을 저장하는 Stack 자료구조를 가지고 있습니다.
활용 상황
- 객체를 이전의 상태로 복구시켜야 하는 경우가 존재할때 유용합니다.
Memento 패턴의 장단점
- 장점
- 저장된 상태를 핵심 객체와는 다른 별도의 객체에 보관하기 때문에 안전합니다.
- 핵심 객체의 데이터를 계속해서 캡슐화된 상태로 유지할 수 있습니다.
- 복구 기능을 구현하기 쉽습니다.
- 단점
- 상태를 저장하고 복구하는데 시간이 오래 걸릴 수 있습니다.