Prototype Pattern Copiez et utilisez l'instance
Sur cette page ・ Confirmation du modèle de prototype -Stocker et utiliser des instances dans la collection Map Décrivez
Vérifiez avec la structure de classe suivante
classe | Explication |
---|---|
samPrototype.class | Avoir une méthode pour faire une copie de vous-même |
user(Main.class) | Vérifiez le fonctionnement |
Implémentez l'interface java.lang.Cloneable lors de l'utilisation de la méthode clone ()
Allons vérifier
samPrototype.class
class samPrototype implements Cloneable{ // java.lang.Mettre en œuvre clonable
void todo(){System.out.println("prototype");}
samPrototype getClone(){
samPrototype pro = null;
try{pro=(samPrototype) clone(); // clone()Et faire une copie de lui-même
}catch(Exception e){}
return pro;
}
}
user(Main.class)
public static void main(String[] args){
samPrototype pr = new samPrototype();
pr.getClone().todo();
}}
Pour Prototype Pattern, enregistrez plusieurs instances à l'avance Il y a une utilisation pour exécuter clone () si nécessaire
Implémenter avec la configuration suivante
nom de la classe | Explication |
---|---|
prototype.interface | Mettre en œuvre clonable et cloner()Définir une méthode |
prototypeImple.class | prototype.Implémenter l'interface et cloner()Mettre en œuvre la méthode |
prototypeManager.class | Conservez une collection d'instances de classe qui implémentent le prototype cloner en type prototype()Émettre une instance à l'aide d'une méthode |
user(Main.class) | Vérifiez le fonctionnement |
Faisons une classe
prototype.interface
interface prototype extends Cloneable{
void todo();
prototype exeClone();
}
prototypeImple.class
class prototypeImple implements prototype{
String name;
prototypeImple(String name){this.name=name;}
public void todo(){System.out.println(name);}
public prototype exeClone(){
prototype pro = null;
try{pro = (prototype) clone();}catch(Exception e){}
return pro;
}
}
usr(Main.class)
public static void main(String[] args){
prototypeManager pm = new prototypeManager();
pm.set(0, new prototypeImple("A"));
pm.set(1, new prototypeImple("B"));
prototype p1 = pm.getClone(0);
prototype p2 = pm.getClone(1);
p1.todo();
p2.todo();
}}
Recommended Posts