티스토리 뷰

Java

Memento Pattern 배워보기

techbard 2014.01.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

 

댓글
댓글쓰기 폼
공지사항
Total
409,801
Today
19
Yesterday
27
«   2019/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함