Definition (aus der Baidu-Enzyklopädie)
Verwenden Sie Prototypinstanzen, um die zu erstellenden Objekttypen anzugeben, und erstellen Sie neue Objekte durch Kopieren dieser Prototypen.
UML-Klassendiagramm:
🎜>
Beschreibung jedes Teils: Prototype-Prototypenklasse implementiert die Cloneable-Schnittstelle.
ConcretePrototype1 Eine Unterklasse der Prototypklasse Prototypepublic class Client {public static void main(String[] args) {// Director d = new Director(new ConcreteBuilder());// d.construct();ConcretePrototype1 prototype = new ConcretePrototype1();for (int i = 0; i < 10; i++) { ConcretePrototype1 x = (ConcretePrototype1) prototype.clone(); x.test1(); } } }public class Prototype implements Cloneable {public Prototype clone() { Prototype prototype = null;try{ prototype = (Prototype)super.clone(); }catch(CloneNotSupportedException e){ e.printStackTrace(); }return prototype; } }public class ConcretePrototype1 extends Prototype {public void test1() { System.out.println(this); System.out.println("123"); } }
Eine Objektinstanz durch Klonen kopierenDas geklonte neue Objekt kopiert den Wert der ursprünglichen Instanz
Wenn Sie den Prototypmodus zum Kopieren eines Objekts verwenden, wird der Konstruktor der Klasse nicht aufgerufen. Da das Kopieren des Objekts durch Aufrufen der Klonmethode der Object-Klasse abgeschlossen wird, sind für den Prototypmodus sogar die Zugriffsberechtigungen ungültig. Erinnern Sie sich an das Singleton-Muster? Im Singleton-Modus kann ein Singleton implementiert werden, solange die Zugriffsberechtigung des Konstruktors auf privat gesetzt ist. Die Klonmethode ignoriert jedoch direkt die Berechtigungen der Konstruktormethode. Daher steht der Singleton-Modus im Konflikt mit dem Prototyp-Modus und sollte daher bei der Verwendung besonders beachtet werden.
Die Klonmethode führt eine flache Kopie durch. Wenn es sich also um ein Referenztypattribut handelt, wird nicht kopiert, sondern nur die Referenz kopiert.
Vor- und Nachteile:
Vorteile:
Die Klonmethode wird ausgeführt, indem die virtuelle Maschine den Speicherblock direkt kopiert, was viel schneller als neu ist
Erhalten des Objekts zur Laufzeit und des entsprechenden Status
Nachteile:
Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial für Designmuster-Prototypmuster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!