Modern C++ Design Pattern/Chatper 18. 메멘토

created : 2020-04-28T12:07:07+00:00
modified : 2020-09-26T14:25:20+00:00

cpp memento

간략 설명

  • 커맨드 패턴에서 이론적으로 과거의 어떤 지점으로 상태를 되돌릴수 있다
  • 메멘토 패턴은 모든 임의의 과거가 아니라 필요할 때 특정 시점으로 되돌리기만 하면 될때 사용한다.
  • 특정 시점의 시스템 상태를 저장하고, 읽기 전용 속성을 가지고 자체적으로 아무 동작을 안하는 객체를 만든다 (이걸 토큰이라고 부르기도 한다)

특징

  • 불변 속성을 가진다. 저장된 잔고 값이 나중에 변경될 수 있다면 존재한 적 없는 과거 상태로 되돌리는게 가능해져 버린다.
  • 대상 객체에 friend로 선언한다. 필드 변수에 접근하기 위해 필수적으로 필요하다. 물론 종첩 클래스로 만들어 접근할 수도 있다.