메멘토 패턴은 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 소프트웨어 디자인 패턴이다. 현재(원본) 상태를 저장하는 객체인 Originator에서 특정 상태를 저장하는 Memento 객체로 변환하여 CareTaker에 저장하는 구조이며, 핵심 객체의 데이터를 계속해서 캡슐화된 상태로 유지하는 것이 특징이다.
예시 코드
현재 상태를 담고있는 객체인 Originator이다. 새 Memento를 생성하거나 Memento로부터 정보를 받아와 상태를 변경하는 메서드를 가지고있다.
특정 시점의 상태를 저장하는 Memento 객체이다.
Memento를 List형태로 저장하고있는 CareTaker이다. 새로운 Memento를 저장하거나 꺼내오는 메서드를 가지고 있다.