TIL

2023/12/27 TIL (메멘토 패턴)

미역제자 2023. 12. 28. 00:44


Memento Pattern:

- 객체의 상태를 기억해 두었다가 필요할 때 기억해둔 상태로 객체를 되돌림.

- 객체의 상태에 대한 기억은 다른 객체에서도 읽기 전용으로 접근할 수 있음.

- 객체의 상태에 대한 기억의 생성은 오직 해당 객체만 할 수 있다.

 

메멘토 패턴은 책임에 따라 객체를 3가지로 나눌 수 있다.

  1. 오리지네이터: 상태를 저장하고 복원할 객체의 주체이다.
  2. 케어테이커: 오리지네이터의 저장과 복원을 제어한다.
  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