행동 패턴: 메멘토 패턴
소개
캡슐화를 유지하면서 객체 내부 상태를 외부에 저장하는 방법이다. 객체 상태를 외부에 저장했다라 해당 상태로 다시 복구시킬 수 있다.
1) 장점
- 캡슐화를 지키면서 상태 객체 스냅샷을 만들 수 있다.
- 객체 상태를 저장하고 또 복원하는 역할을 Care Taker에게 위임할 수 있다.
- 객체 상태가 바뀌어도 클라이언트 코드는 변경되지 않는다.
2) 단점
- 많은 정보를 저장하는 Mememtor를 자주 생성하는 경우 메모리 사용량에 부정적인 영향을 줄 수 있다.
구현
1) 메멘토 클래스 구현
@Getter
public final class GameSave {
private final int blueTeamScore;
private final int redTeamScore;
public GameSave(int blueTeamScore, int redTeamScore) {
this.blueTeamScore = blueTeamScore;
this.redTeamScore = redTeamScore;
}
}
2) Originator 구현
@Getter
@Setter
public class Game {
private int redTeamScore;
private int blueTeamScore;
public GameSave save() {
return new GameSave(this.blueTeamScore, this.redTeamScore);
}
public void restore(GameSave gameSave) {
this.blueTeamScore = gameSave.getBlueTeamScore();
this.redTeamScore = gameSave.getRedTeamScore();
}
}
사용
public class Client {
public static void main(String[] args) {
Game game = new Game();
game.getBlueTeamScore(10);
game.getRedTeamScore(20);
GameSave save = game.save();
game.setBlueTeamScore(12);
game.setRedTeamScore(22);
game.restore(save);
}
}
Author And Source
이 문제에 관하여(행동 패턴: 메멘토 패턴), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zenon8485/행동-패턴-메멘토-패턴저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)