디자인 패턴 - 메멘토 패턴(Memento Pattern)
디자인 패턴이란?
디자인 패턴이란? 게시글을 참고하자.
생성(Creational) 패턴 | 구조(Structural) 패턴 | 행동(Behavioral) 패턴 |
---|---|---|
Singleton | Adapter | Command |
Abstract Factory | Composite | Interpreter |
Factory Method | Decorator | Iterator |
Builder | Facade | Mediator |
Prototype | Flyweight | Memento |
Proxy | Observer | |
State | ||
Strategy | ||
Template Method |
메멘토 패턴
메멘토 패턴은 객체 상태 정보를 가지는 클래스를 따로 만들어서 객체의 상태를 저장하거나 이전 상태로 복원할 수 있게 해주는 패턴을 말한다. 즉, 원하는 시점의 상태 복원이 가능한 패턴이다.
- Originator 저장할 객체의 클래스이다. Originator의 State(상태)를 저장한다
- Memento 내부 정보를 추상화한 클래스이다. Caretaker는 Originator의 내부정보를 추상화한 Memento 타입의 정보를 가져간다.
- Caretaker Originator의 내부 정보를 가져와 저장한다
장단점
장점
- 캡슐화를 지키면서 상태 객체의 상태 스냅샷(State snapshot)을 만들 수 있다.
- 객체 상태가 바뀌어도 코드가 바뀌지 않는다
- 객체 상태를 저장하고 복원하는 역할을 Caretaker에 위임할 수 있다
단점
- 많은 정보를 저장하는 Memento가 자주 생성될 경우 메모리 사용량에 영향을 줄 수 있다.
자바의 직렬화등에 사용된다
댓글남기기