-
행위패턴 : Memento 패턴디자인패턴 2013. 2. 28. 10:27
분류 : 행위패턴(Behavioral Patterns)
정의 :
객체의 이전 상태를 저장하는 기능을 제공하는 패턴.
용도 :
originator와 caretaker 두개의 객체로 구현됨.
originator : 내부 상태를 가지고 있는 객체.
caretaker : originator에 어떤 행위를 하지만 변경사항을 되돌릴수 있는 기능이 있음.
소스
import java.util.List; import java.util.ArrayList; class Originator { private String state; // The class could also contain additional data that is not part of the // state saved in the memento. public void set(String state) { System.out.println("Originator: Setting state to " + state); this.state = state; } public Memento saveToMemento() { System.out.println("Originator: Saving to Memento."); return new Memento(state); } public void restoreFromMemento(Memento memento) { state = memento.getSavedState(); System.out.println("Originator: State after restoring from Memento: " + state); } public static class Memento { private final String state; public Memento(String stateToSave) { state = stateToSave; } public String getSavedState() { return state; } } } import java.util.List; import java.util.ArrayList; class Caretaker { public static void main(String[] args) { List
savedStates = new ArrayList (); Originator originator = new Originator(); originator.set("State1"); originator.set("State2"); savedStates.add(originator.saveToMemento()); originator.set("State3"); // We can request multiple mementos, and choose which one to roll back to. savedStates.add(originator.saveToMemento()); originator.set("State4"); originator.restoreFromMemento(savedStates.get(1)); } } 참고자료
'디자인패턴' 카테고리의 다른 글
행위패턴 : State 패턴 (0) 2013.03.11 행위패턴 : Observer 패턴 (0) 2013.03.04 행위패턴 : Mediator 패턴 (0) 2013.02.28 행위패턴 : Iterator 패턴 (0) 2013.02.27 행위패턴 : Interpreter 패턴 (0) 2013.02.27 댓글