标签:
<?php class color { public $name = ‘红色‘; } class prototype { private $color = null; public function __construct (color $color) { $this->color = $color; } public function clone_self() { $obj = clone $this; $obj->color = clone $obj->color; //深复制 复制对象已持有的对象 return $obj; //return clone $this; //浅复制 不会复制对象持有的对象 } public function get_color() { echo $this->color->name,chr(10); } } $color = new color(); $a = new prototype($color); $a->get_color(); //红色 $b = $a->clone_self(); $color->name = ‘绿色‘; $a->get_color(); //绿色 $b->get_color(); //红色
原型模式(prototype):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
标签:
原文地址:http://www.cnblogs.com/buexplain/p/4631411.html