본문 바로가기
Design Pattern/Behavioral Design

[Design Pattern] (Behavioral) 메멘토 패턴(Memento Pattern)

by song.ift 2023. 3. 27.

디자인 패턴 유형

  • Creation Design Pattern
    • 객체의 생성에 관련된 패턴
    • 객체의 생성 로직을 숨김으로써 유연성을 향상시킨다.
  • Strutural Design Pattern
    • 클래스와 객체의 구성에 관련된 패턴
  • Behavioral Design Pattern
    • 객체와 객체 간의 통신에 관련된 패턴

 

[Behavioral Design Pattern] 메멘토 패턴(Memento Pattern)

1) 개요

메맨토 패턴은 객체의 상태 정보를 가지는 클래스를 따로 생성하여, 객체의 상태를 저장하거나 이전 상태로 복원할 수 있게 해주는 패턴입니다. 메멘토 패턴은 바둑, 오목, 체스 등의 보드게임 등에서 '무르기' 기능을 구현할 때 사용되기도 합니다.

단, 이전 상태의 객체를 저장하기 위한 Originator가 클 경우 많은 메모리가 필요합니다.

 

2) UML

 

- Originator : 객체의 상태를 저장합니다. Memento 객체를 생성하며 후에 Memento를 사용하여 실행 취소(undo)를 할 수 있습니다.

- Memento : Originator의 상태를 유지하는 객체입니다.(POJO) 

- Caretaker : 마치 게임의 세이브포인트처럼 복수의 Memento의 상태를 유지해주는 객체입니다.

댓글