原文链接:http://www.orlion.ga/727/
解释:
原型设计模式创建对象的方式是复制和克隆初始对象或原型,这种方式比创建新实例更为有效,在需要经常创建资源集中型对象的情况下,原型模式可以提供更快速执行的途径。
代码:
声明一个克隆自身的接口:
namespace Prototype; interface CDPrototype{ function copy(); }
具体克隆对象
namespace Prototype; class CDPrototypeImpl implements CDPrototype{ public $title; public function __construct($title){ $this->title = $title; } // 浅复制 public function copy(){ return clone $this; } // 深复制 // public function copy(){ // $serializeObj = serialize($this); // return unserialize($serializeObj); // } public function __clone(){ $this->title = 'This is a clone obj'; // 需要说明的是__clone()魔术方法是在克隆出来的对象中执行的,而不是原型对象 } }
App.PHP
require 'CDPrototype.PHP'; require 'CDPrototypeImpl.PHP'; $cd = new Prototype\CDPrototypeImpl('obj'); $cloneCD = $cd->copy(); var_dump($cloneCD->title); var_dump($cd->title);
关于浅复制与深复制可参见:http://www.orlion.ga/731/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。