码迷,mamicode.com
首页 > 其他好文 > 详细

原型模式

时间:2016-04-03 23:26:54      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

原文链接: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/

原型模式

标签:

原文地址:http://www.cnblogs.com/orlion/p/5350909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!