Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Designmuster – detaillierte Erläuterung der Verwendung und Funktion des Prototypmusters

PHP-Designmuster – detaillierte Erläuterung der Verwendung und Funktion des Prototypmusters

黄舟
黄舟Original
2017-07-17 16:04:541072Durchsuche

Prototype Pattern (Prototype Pattern): Ähnlich wie Factory Pattern werden beide zum Erstellen von Objekten verwendet. Verwenden Sie das Klonen, um ein großes Objekt zu generieren und den Aufwand für die Initialisierung und andere Vorgänge während der Erstellung zu reduzieren

Warum der Prototypmodus benötigt wird

1. Manchmal müssen wir mehrere ähnlich große Objekte erstellen Objekte. Wenn Sie das neue Objekt direkt übergeben, ist der Overhead sehr hoch und Sie müssen nach jedem neuen Objekt wiederholte Initialisierungsarbeiten durchführen. Es ist möglich, die Initialisierungsarbeit zu kapseln, aber für das System muss die Initialisierungsarbeit trotzdem durchgeführt werden, unabhängig davon, ob Sie sie kapseln oder nicht.
2. Der Prototypmodus ist anders. Der Prototypmodus erstellt zunächst ein Prototypobjekt und erstellt dann ein neues Objekt durch Klonen des Prototypobjekts. Dadurch entfällt die wiederholte Initialisierungsarbeit, und das System benötigt nur eine Speicherkopie.

<?php
/**
* 原型模式
*
* @author webff
*/
/**

//声明一个克隆自身的接口
interface Prototype {
    function copy(); 
}   

//产品要实现克隆自身的操作
class Student implements Prototype {
    //简单起见,这里没有使用get set
    public $school;
    public $major;
    public $name;

    public function construct($school, $major, $name) {
        $this->school = $school;
        $this->major = $major;
        $this->name = $name;
    }

    public function printInfo() {
        printf("%s,%s,%sn", $this->school, $this->major, $this->name);
     }

    public function copy() {
        return clone $this;
    }
}

$stu1 = new Student(&#39;清华大学&#39;, &#39;计算机&#39;, &#39;张三&#39;);
$stu1->printInfo();

$stu2 = $stu1->copy();
$stu2->name = &#39;李四&#39;;
$stu2->printInfo();

?>

Wie Sie hier sehen können, wird dies der Fall sein, wenn eine Klasse viele Mitglieder und Variablen hat und mehrere neue Objekte extern erstellt und ihnen nacheinander Werte zugewiesen werden Wenn etwas schief geht, wird es zu einem weiteren neuen Objekt, indem es sich selbst durch die Prototypenkopie kopiert und dann kleinere Änderungen vornimmt.

Das obige ist der detaillierte Inhalt vonPHP-Designmuster – detaillierte Erläuterung der Verwendung und Funktion des Prototypmusters. 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