Heim  >  Artikel  >  Java  >  Beispiel-Tutorial für Designmuster-Prototypmuster

Beispiel-Tutorial für Designmuster-Prototypmuster

零下一度
零下一度Original
2017-06-27 10:26:331131Durchsuche

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 Prototype
public 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");
    }
}
Modusdetails:

Eine Objektinstanz durch Klonen kopierenDas geklonte neue Objekt kopiert den Wert der ursprünglichen Instanz

Hinweise zum Prototypmodus:

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:

Der Prototyp muss die Klonmethode implementieren. Wenn die Attribute im Prototyp viele Referenztypen oder sogar Anwendungen in Objekten haben, muss die Klonmethode rekursiv implementiert werden , was beim Hinzufügen von Referenzattributen sehr kompliziert sein wird, wird die Implementierung der Klonmethode ändern.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn