상세 컨텐츠

본문 제목

Memento Pattern 배워보기

Java

by techbard 2014. 1. 28. 00:15

본문

반응형

메멘토 패턴이란 현재 객체의 상태를 저장했다가 나중에 꺼내는 패턴이라고 한다. 복잡하게 구현한 여러 예제들이 있었지만 이해가 되지 않아서 패스하고 그나마 간단한 것을 연습해 보았다.

 

1. 먼저 저장/복원할 대상이 될 클래스를 작성한다.

 

 

2. 이 대상 클래스의 저장을 위한 틀을 메멘토라고 부른다.

 

 

생성자를 이용해 대상 클래스를 받아 멤버에 저장하며 getter/setter를 정의한다.

 

3. 메멘토 클래스를 추가하고 꺼내는 저장소 역할을 하는 CareTaker 클래스를 작성한다.

 

 

4. 메멘토를 생성, 복원하고 대상 객체로 세팅하는 오리지네이터 클래스를 작성한다.

 

 

5. 이제 테스트 클래스를 작성해 보자.

 

 

결과:

 

...

Originator current state: Originator [animal=Animal [name=iguana, color=green, weight=1]]

Originator restoring to dog...

Originator current state: Originator [animal=Animal [name=dog, color=white, weight=5]]

 

5번 라인에서 Animal 객체를 생성하고 Caretaker를 통해서 생성한 메멘토 객체를 저장한다. 10번 라인에서 두 번째 Animal 객체를 생성해서 메멘토에 저장한다. 13번 라인에서 세 번째 Animal 객체를 메멘토에 저장한다. 이제 current 객체는 igana 임을 확인하 수 있다. 17번 라인에서 최초 저장한 메멘토로 복원한 후 18번 라인을 통해 dog 객체로 복원되었음을 알 수 있다.

 

MementoPattern.zip

 

반응형

관련글 더보기

댓글 영역