반응형
SMALL

Memento 2

[Design Pattern] 커맨드(Command), 템플릿(Template), 메멘토(Memento) 패턴

커맨드(Command) 커맨드(Command) 디자인 패턴은 전략 설계 패턴과 매우 유사하지만 주요 차이점이 있습니다. 전략 패턴에서는 알고리즘 변경에 초점을 맞추는 반면, 커맨드 패턴에서는 무언가의 호출 또는 어떤 유형의 추상화에 초점을 맞춥니다. package main import "fmt" type Command interface { Execute() } type ConsoleOutput struct { message string } func (c *ConsoleOutput) Execute() { fmt.Println(c.message) } func CreateCommand(s string) Command { fmt.Println("Creating command") return &ConsoleOut..

Go 2022.11.29

[Design Pattern] 추억거리 패턴(Memento Pattern)

이번 학습 주제는 추억거리(Memento) 패턴입니다 문서를 작성할 때 필요한 글을 실수로 삭제하게 되면 undo(실행취소) 기능을 사용합니다 객체 지향의 프로그램에서 이 기능을 실행하려면 인스턴스가 가진 정보를 저장해야하고 인스턴스 내부 정보에 접근 가능해야합니다 하지만 접근의 허용은 자칫 캡슐화의 파괴를 초래할 수 있습니다 Memento 패턴은 캡슐화의 파괴에 빠지지 않고도 할 수 있도록 해줍니다 역할 설명 Originator(작성자) 자신의 현재 상태를 저장하고 싶을 때 Memento 역할을 생성하고 이전의 Memento 역할을 전달 받으면 그 Memento 역할을 만든 시점의 상태로 돌리는 처리를 실행 Memento(추억거리) Originator 역할의 내부 정보를 정리하며 그 정보는 비공개함 M..

Java 2020.07.16
반응형
LIST