디자인 모드 (20) 의 비망록 모드
1. 수요 예:
프로젝트 코드 개발 에 서 는 후퇴 기능 (즉 ctrl + z 기능) 을 자주 사용 하여 코드 의 이전 버 전 으로 복원 합 니 다.비망록 류 는 역사 버 전의 데 이 터 를 저장 하고 비망록 관리 류 는 비망록 을 관리 하 며 그 중에서 역사 버 전의 데 이 터 를 복원 합 니 다. 작성 자 류 는 코드 를 작성 하고 데 이 터 를 비망록 에 저장 합 니 다.
2. 유형 도:
3. 코드 인 스 턴 스:
1. 코드 비망록 류: Codemento
package com.lance.memento;
public class CodeMemento {
private String previousCode;
public String getPreviousCode() {
return previousCode;
}
public CodeMemento(String previousCode) {
this.previousCode = previousCode;
}
}
2. 코드 작성 자 클래스: CodeOriginator
package com.lance.memento;
public class CodeOriginator {
private String currentCode;
public String getCurrentCode() {
return currentCode;
}
public void setCurrentCode(String currentCode) {
this.currentCode = currentCode;
}
public CodeMemento createCodeMemento() {
return new CodeMemento(currentCode);
}
public void setCodeMemento(CodeMemento codeMemento) {
this.currentCode = codeMemento.getPreviousCode();
}
public void show() {
System.out.println("current code:" + this.currentCode);
}
}
3. 비망록 관리 유형: CodeCareTaker, Memento 에서 회복 대상 을 책임 집 니 다.
package com.lance.memento;
public class CodeCareTaker {
private CodeMemento codeMemento;
public CodeMemento getCodeMemento() {
return codeMemento;
}
public void setCodeMemento(CodeMemento codeMemento) {
this.codeMemento = codeMemento;
}
}
4. 주 클래스:
package com.lance.memento;
public class MementoPattern {
public static void main(String[] args) {
System.out.println("==========start==========");
CodeOriginator codeOriginator = new CodeOriginator();
codeOriginator.setCurrentCode("Java Hello World!");
System.out.println("step 1:");
codeOriginator.show();
CodeCareTaker codeCareTaker = new CodeCareTaker();
codeCareTaker.setCodeMemento(codeOriginator.createCodeMemento());
codeOriginator.setCurrentCode("Java Spring!");
System.out.println("step 2:");
codeOriginator.show();
codeOriginator.setCodeMemento(codeCareTaker.getCodeMemento());
System.out.println("rollback:");
codeOriginator.show();
System.out.println("==========end==========");
}
}
출력 결과:
==========start==========
step 1:
current code:Java Hello World!
step 2:
current code:Java Spring!
rollback:
current code:Java Hello World!
==========end==========
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.