2013-10-09 5 views
0

이것은이 패턴에 대해 내가 이해하지 못하는 한 가지입니다. Memento 객체가 생성자와 getState() 메소드를 가지고있는 이유는 무엇입니까? 언제 Memento의 상태를 만든 후에 그것을 설정하는 것이 합리적입니까? 과거를 바꾸는 것과 같지 않나요?Memento 객체에 setState() 함수가있는 이유는 무엇입니까?

+0

위키피디아 예 (http://en.wikipedia.org/wiki/Memento_pattern)에만 생성자의 getState 및 구현이있다. – agbinfo

+0

흠, 고마워, 대부분의 예제와 설명을 내가 볼 수 setState 함수를 포함 – Outback

+0

흥미로운 지점! 아마도 그것은 두 가지 접근법을 얻는 습관에서 나온 것입니다. 이 경우 세트는 비공개이어야합니다. – Jay

답변

0

Memento 클래스에는 setState 메소드가 없어야합니다. 그것은 말도 안돼. Memento는 Caretaker가 Originator의 상태를 복원하기 위해 유지하는 토큰 일뿐입니다. Caretaker가 새로운 상태 정보로 새로운 Memento를 원한다면 Originator에서 가져와야합니다.

Here is a good example.