Prototype Pattern Kopieren Sie die Instanz und verwenden Sie sie
Auf dieser Seite ・ Bestätigung des Prototypmusters
Überprüfen Sie mit der folgenden Klassenstruktur
Klasse | Erläuterung |
---|---|
samPrototype.class | Haben Sie eine Methode, um eine Kopie von sich selbst zu machen |
user(Main.class) | Überprüfen Sie den Betrieb |
Implementieren Sie die Schnittstelle java.lang.Cloneable, wenn Sie die Methode clone () verwenden
Lass uns nachsehen
samPrototype.class
class samPrototype implements Cloneable{ // java.lang.Implementieren Sie Cloneable
void todo(){System.out.println("prototype");}
samPrototype getClone(){
samPrototype pro = null;
try{pro=(samPrototype) clone(); // clone()Und mache eine Kopie von sich
}catch(Exception e){}
return pro;
}
}
user(Main.class)
public static void main(String[] args){
samPrototype pr = new samPrototype();
pr.getClone().todo();
}}
Registrieren Sie für das Prototypmuster mehrere Instanzen im Voraus Es gibt eine Verwendung, um clone () bei Bedarf auszuführen
Implementieren Sie mit der folgenden Konfiguration
Name der Klasse | Erläuterung |
---|---|
prototype.interface | Implementieren Sie Cloneable und Clone()Definieren Sie eine Methode |
prototypeImple.class | prototype.Schnittstelle implementieren und klonen()Implementieren Sie die Methode |
prototypeManager.class | Führen Sie eine Sammlung von Klasseninstanzen, die Prototypen implementieren Klon im Prototyp-Typ()Stellen Sie eine Instanz mit einer Methode aus |
user(Main.class) | Überprüfen Sie den Betrieb |
Lass uns eine Klasse machen
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