반응형
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
'Design Pattern' 카테고리의 다른 글
[Design Pattern] 중재자 패턴(Mediator Pattern)에 대해 알아보자 (0) | 2022.08.02 |
---|---|
[Design Pattern] 책임 연쇄 패턴(Chain of Reponsibility Pattern)에 대해 알아보자 (0) | 2022.07.29 |
[Design Pattern] 빌더 패턴(Builder Pattern)에 대해 알아보자 (0) | 2022.07.28 |
[Design Pattern] 프록시 패턴(Proxy Pattern)에 대해 알아보자 (0) | 2022.07.25 |
[Design Pattern] 상태 패턴(State Pattern)에 대해 알아보자 (0) | 2022.07.19 |
댓글