微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

原型模式

原文链接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] 举报,一经查实,本站将立刻删除。

相关推荐