Préparez une classe qui duplique l'état d'une classe spécifique et appelez-la Memento. l'utilisateur instancie Memento et l'enregistre dans une collection lorsqu'il crée un doublon, et récupère les instances selon les besoins
Memento retient les membres à dupliquer </ font>
Vérifiez avec la structure de classe suivante
classe | Explication |
---|---|
Origin.class | Classe à répliquer |
Memento.class | Lors de la duplication d'Origin, dupliquez les données d'Origine dans Memento et enregistrez Memento |
MementoList.class | Contient des collections (List, Map, etc.) et stocke les instances Memento |
user(Main.class) | Vérifiez le fonctionnement |
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; //Avoir le même champ que 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