JAVAの23種類の設計モード---覚書モード(一)
2353 ワード
メモモード:パッケージ性を損なうことなく、1つのオブジェクトの内部状態をキャプチャし、そのオブジェクトの外にこの状態を保存することで、後でそのオブジェクトを元の保存状態に戻すことができる.注意:a:メモモードはオブジェクトのバックアップモードであり、プログラムデータのバックアップ方法を提供する.b:メモモードには、発起人ロール、メモロール、メモマネージャロールの3つのロールが含まれているc:一般的なデータベースのトランザクション管理、ロールバック、メモモードが用いられる.d:メモが作成されると、ライフサイクルをアクティブに管理し、作成するには使用し、使用しないですぐに参照を削除します.また、頻繁にバックアップを作成するシーンでメモモードを使用しないでください.ありふれた
}
package MemoOne;
//
public class Programer {
//
private String codeState = null;
//
public void changCodeState(){
this.codeState=" ";
}
//getter/setter
public String getCodeState() {
return codeState;
}
public void setCodeState(String codeState) {
this.codeState = codeState;
}
//
public Memento createMemento(){
return new Memento(this.codeState);
}
//
public void restoreMemento(Memento _mement){
this.setCodeState(_mement.getCodeState());
}
package MemoOne;
//
/**
* @author lanou3g
*
*/
public class Memento {
//
private String codeState = null;
//
public Memento(String codeState) {
this.codeState = codeState;
}
//getter,getter
public String getCodeState() {
return codeState;
}
public void setCodeState(String CodeState) {
this.codeState = codeState;
}
}
package MemoOne;
//
public class Caretaker {
//
private Memento memento;
//getter.setter
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
package MemoOne;
//
public class Client {
public static void main(String[] args) {
//
Programer programer = new Programer();
//
Caretaker caretaker = new Caretaker();
//
programer.setCodeState(" ");
// :
System.out.println(programer.getCodeState());
//
caretaker.setMemento(programer.createMemento());
//
programer.createMemento();
System.out.println(programer.getCodeState());
// :
//
programer.restoreMemento(caretaker.getMemento());
System.out.println(programer.getCodeState());
// :
}
}
}