メモモードコードの例(java言語版)
2173 ワード
前言:メモモードは、オブジェクトのステータスを保存し、適切なタイミングでオブジェクトを復元します.メモモードは動作モードに属します.利点:1、ユーザーに状態を回復できるメカニズムを提供し、ユーザーがある履歴の状態に比較的便利に戻ることができる.2、情報のカプセル化を実現し、ユーザーが状態の保存の詳細に関心を持つ必要がない.欠点:リソースを消費する.クラスのメンバー変数が多すぎると、比較的大きなリソースが消費され、保存するたびに一定のメモリが消費されます.
JAVA言語版メモモード
ストレージクラスを作成するには、次の手順に従います.
イニシエータクラスを作成するには、次の手順に従います.
デーモンクラスを作成するには
MementoPatternDemoクラスのプレゼンテーションメモモードを使用します.
出力結果:
JAVA言語版メモモード
ストレージクラスを作成するには、次の手順に従います.
public class Memento {
private String state;
public Memento(String state) {
this.state = state;
}
public String getState() {
return state;
}
}
イニシエータクラスを作成するには、次の手順に従います.
public class Originator {
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Memento saveStateToMemento(){
return new Memento(state);
}
public void getStateFromMemento(Memento memento){
state = memento.getState();
}
}
デーモンクラスを作成するには
public class CareTaker {
private List mementoList =new ArrayList<>();
public void add(Memento memento){
mementoList.add(memento);
}
public Memento get(int index){
return mementoList.get(index);
}
}
MementoPatternDemoクラスのプレゼンテーションメモモードを使用します.
public class MementoPatternDemo {
public static void main(String[] args) {
Originator originator = new Originator();
CareTaker careTaker = new CareTaker();
originator.setState(" ");
originator.setState(" ");
careTaker.add(originator.saveStateToMemento());
originator.setState(" ");
careTaker.add(originator.saveStateToMemento());
originator.setState(" ");
System.out.println(" : " + originator.getState());
originator.getStateFromMemento(careTaker.get(0));
System.out.println(" : " + originator.getState());
originator.getStateFromMemento(careTaker.get(1));
System.out.println(" : " + originator.getState());
}
}
出力結果:
:
:
: