Maison > développement back-end > tutoriel php > A quoi sert le mode prototype ?

A quoi sert le mode prototype ?

藏色散人
Libérer: 2023-04-05 20:40:02
avant
3995 Les gens l'ont consulté

Prototype

Prototype Le modèle de prototype est un modèle de conception de création permettant à un objet de créer un autre objet personnalisable, sans connaître aucun détail sur la façon de le faire. le créer, fonctionne comme ceci : en passant un objet prototype à l'objet à créer, l'objet à créer est créé en demandant à l'objet prototype de se copier.

Quel problème résout-il

Le principal problème auquel il est confronté est : la création de « certains objets avec des structures complexes » en raison de changements dans les exigences, ces objets souvent ; face subissent des changements drastiques, mais ils ont des interfaces relativement stables et cohérentes.

Utilisez la méthode clone() fournie par PHP pour cloner des objets, ainsi l'implémentation du mode Prototype devient du coup très simple. Et vous pouvez utiliser la fonction __clone() de PHP pour effectuer un clonage profond.

Exemple de code

<?php
//定义原型类接口
interface prototype{
public function copy();
}
//一个具体的业务类并实现了prototype 接口
//以一个文本的读写操作类为例
class text implements prototype{
private $_fileUrl;
public function __construct($fileUrl){
$this->_fileUrl = $fileUrl;
}
public function write($content){
file_put_contents($this->_fileUrl, $content);
}
public function read(){
return file_get_contents($this->_fileUrl);
}
public function copy(){
return clone $this;
}
/* 可以使用php的__clone() 函数完成深度克隆 */
public function __clone(){
echo &#39;clone...&#39;;
}
}
$texter1 = new text(&#39;1.txt&#39;);
$texter1->write(&#39;test...&#39;);
//获得一个原型
$texter2 = $texter1->copy();
echo $texter2->read();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:hcoder.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal