20. 메멘토 패턴(Memento Pattern) 설계

20. 3 디자인

메멘토 패턴에 대한 설명을 위한 예제로 사용할 프로그램은 사진을 보정하는 응용을 소재로 하겠습니다.

응용은 사진에 대한 보정 작업을 수행할 수 있는데 보정 작업을 하는 도중에 취소를 요청하면 원래 사진으로 복원이 가능하게 할 것입니다. 응용은 App, 사진은 Picture 이름의 클래스를 사용하고 원본 Picture 개체 정보를 보관하는 Snapshot 형식을 정의할 것입니다.

응용에 사진이 설정이 되면 사진 개체에게 스냅샷을 만들어 줄 것을 요청하여 보관을 합니다. 그리고, 작업을 취소 요청을 하면 보관했던 스냅샷을 사진 개체에게 전달하여 복원하도록 할 것입니다.

[그림] 메멘토 패턴 클래스 다이어그램
[그림] 메멘토 패턴 클래스 다이어그램