Bereiten Sie eine Klasse vor, die den Status einer bestimmten Klasse dupliziert, und nennen Sie sie Memento. Der Benutzer instanziiert Memento und zeichnet es in einer Sammlung auf, wenn ein Duplikat erstellt wird, und ruft nach Bedarf Instanzen ab.
Memento enthält Mitglieder zum Duplizieren </ font>
Überprüfen Sie mit der folgenden Klassenstruktur
Klasse | Erläuterung |
---|---|
Origin.class | Zu replizierende Klasse |
Memento.class | Wenn Sie Origin duplizieren, duplizieren Sie Origin-Daten in Memento und speichern Sie Memento |
MementoList.class | Enthält Sammlungen (Liste, Karte usw.) und speichert Memento-Instanzen |
user(Main.class) | Überprüfen Sie den Betrieb |
Origin.class
class Origin{
int No;
void setNo(int No){
this.No=No;
}
Memento createMemento(){
return new Memento(No);
}
}
Memento.class
class Memento{
int No; //Haben Sie das gleiche Feld wie Origin
Memento(int No){
this.No=No;
}
int getNo(){
return No;
}
}
MementoList.class
class MementoList{
Map map = new HashMap();
void put(int key,Memento mmt){
map.put(key,mmt);
}
Memento getMemento(int key){
return (Memento) map.get(key);
}
}
user(Main.class)
public static void main(String[] args){
Origin or = new Origin();
MementoList list = new MementoList();
or.setNo(1);
list.put(1,or.createMemento());
or.setNo(2);
list.put(2,or.createMemento());
Memento m1 = list.getMemento(1);
System.out.println(m1.getNo());
}
Recommended Posts