본문 바로가기
Design Pattern

[Design Pattern] 메멘토 패턴(Memento Pattern)에 대해 알아보자

by 개발자J의일상 2022. 8. 2.
반응형

Definition

메멘토 패턴(Mediator Pattern)은 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 디자인 패턴이다.

Behavioral Patterns

Situation

- 객체를 이전의 상태로 복구해야 할 때 (사용자가 '작업 취소'를 요청)

- 시스템에서 핵심적인 기능을 담당하는 객체의 상태 저장

- 핵심적인 객체의 캡슐화 유지

Structure

Pros

- 저장된 상태를 핵심 객체와는 다른 별도의 객체에 보관할 수 있어 안전하다.

- 핵심 객체의 데이터를 계속해서 캡슐화된 상태로 유지할 수 있다.

- 복구 기능을 구현하기가 쉽다.

Cons

- 상태를 저장하고 복구하는 데 시간이 오래 걸릴 수 있다.

 

비슷한 패턴

- "undo"를 구현할 때 Command와 Memento를 함께 사용할 수 있다. 이 경우 Command는 대상 객체에 대해 다양한 작업을 수행하는 역할을 하는 반면, Memento는 명령이 실행되기 직전에 해당 객체의 상태를 저장한다.

 

- Memento를 Iterator와 함께 사용하여 현재 반복 상태를 캡처하고 필요한 경우 롤백할 수 있다.

 

- 때때로 Prototype은 Memento에 대한 더 간단한 대안이 될 수 있다. 이는 히스토리에 저장하려는 상태인 객체가 상당히 간단하고 외부 리소스에 대한 링크가 없거나 링크를 다시 설정하기 쉬운 경우 작동한다.

 

https://www.crocus.co.kr/1542
https://refactoring.guru/design-patterns/mediator
헤드퍼스트 디자인패턴 개정판 - 에릭 프리먼
300x250

댓글