Memento Pattern:
- 객체의 상태를 기억해 두었다가 필요할 때 기억해둔 상태로 객체를 되돌림.
- 객체의 상태에 대한 기억은 다른 객체에서도 읽기 전용으로 접근할 수 있음.
- 객체의 상태에 대한 기억의 생성은 오직 해당 객체만 할 수 있다.
메멘토 패턴은 책임에 따라 객체를 3가지로 나눌 수 있다.
- 오리지네이터: 상태를 저장하고 복원할 객체의 주체이다.
- 케어테이커: 오리지네이터의 저장과 복원을 제어한다.
- 메멘토: 오리지네이터의 상태를 저장한다.
케어테이커(Caretaker)가 오리지네이터(Originator)에게 상태를 저장할 수 있도록 메멘토(Memento) 객체를 요청하면, 오리지네이터가 메멘토 객체를 생성하여 케어테이커에 저장된다. 그 후 일련의 명령을 통해 객체의 상태가 변경된 후에 케어테이커가 오리지네이터에게 상태를 복원하고자 할 경우, 케어테이커가 오리지네이터에게 메멘토 객체를 넘겨주어 오리지네이터는 메멘토 객체를 통해 상태를 복원한다.
메멘토 패턴을 이용하여 객체를 복원할 경우, 클라이언트는 객체로의 직접적인 접근 없이 메멘토 객체를 통해 캡슐화 된 객체의 복원을 수행할 수 있다. 또한 케어테이커 객체를 통해 객체의 상태를 여러개 저장할 수도 있고, 클라이언트의 기호에 맞게 객체를 복원할 수 있다. 그러나 객체가 복잡한 상태를 저장하고자 할 경우 메멘토 객체에 대한 비용이 부담 될 수가 있다.
(참고) https://yupdown.tistory.com/14
[GoF] 메멘토 (Memento) 패턴
메멘토 (Memento) 패턴 행동 패턴객체의 상태를 저장할 수 있는 객체를 통해 객체의 상태를 되돌릴 수 있게 합니다. 컴퓨터 소프트웨어의 대부분은 사용자의 기호에 알맞게 소프트웨어를 사용할
yupdown.tistory.com
'TIL' 카테고리의 다른 글
2023/12/29 TIL (0) | 2023.12.29 |
---|---|
2023/12/28 TIL (0) | 2023.12.29 |
2023/12/26 TIL (회전: 오일러와 쿼터니언) (1) | 2023.12.26 |
2023/12/22 TIL (URP / FSM) (2) | 2023.12.22 |
2023/12/21 TIL (0) | 2023.12.21 |