Modèle de prototype (Modèle de prototype) : Semblable au Modèle d'usine, les deux sont utilisés pour créer des objets. Utilisez le clonage pour générer un objet volumineux et réduire la surcharge d'initialisation et d'autres opérations lors de la création
Parfois, nous devons créer plusieurs grands objets similaires. objets . Si vous transmettez directement le nouvel objet, cela coûtera très cher et vous devrez effectuer un travail d'initialisation répété après le nouveau. Il est possible d'encapsuler le travail d'initialisation, mais pour le système, que vous l'encapsuliez ou non, le travail d'initialisation doit encore être effectué.
2. Le mode prototype est différent. Le mode prototype crée d'abord un objet prototype, puis crée un nouvel objet en clonant l'objet prototype, ce qui élimine le besoin de travaux d'initialisation répétés et le système n'a besoin que d'une copie mémoire.
<?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('清华大学', '计算机', '张三'); $stu1->printInfo(); $stu2 = $stu1->copy(); $stu2->name = '李四'; $stu2->printInfo(); ?>
Comme vous pouvez le voir ici, s'il y a beaucoup de membres d'une classe et de variables , si plusieurs nouveaux objets sont créés en externe et attribués des valeurs un par un, cela sera être inefficace et sujet à la redondance du code. Si quelque chose ne va pas, copiez-vous via la copie prototype, puis apportez des modifications mineures pour devenir un autre nouvel objet.
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!