博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原型模式
阅读量:5875 次
发布时间:2019-06-19

本文共 794 字,大约阅读时间需要 2 分钟。

原文链接:

解释:

    原型设计模式创建对象的方式是复制和克隆初始对象或原型,这种方式比创建新实例更为有效,在需要经常创建资源集中型对象的情况下,原型模式可以提供更快速执行的途径。

 

代码:

    声明一个克隆自身的接口:

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://akkix.baihongyu.com/

你可能感兴趣的文章
JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)...
查看>>
【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2
查看>>
nginx+php的使用
查看>>
在 ASP.NET MVC 中使用异步控制器
查看>>
SQL语句的执行过程
查看>>
Silverlight开发历程—动画(线性动画)
查看>>
详解Linux中Load average负载
查看>>
HTTP 协议 Cache-Control 头——性能啊~~~
查看>>
丢包补偿技术概述
查看>>
PHP遍历文件夹及子文件夹所有文件
查看>>
WinForm程序中两份mdf文件问题的解决
查看>>
【转】唯快不破:创业公司如何高效的进行产品研发管理
查看>>
Spark RDD、DataFrame原理及操作详解
查看>>
程序计数器、反汇编工具
查看>>
Android N: jack server failed
查看>>
007-Shell test 命令,[],[[]]
查看>>
关于Linux系统使用遇到的问题-1:vi 打开只读(readonly)文件如何退出保存?
查看>>
pandas 按照某一列进行排序
查看>>
在WPF中如何使用RelativeSource绑定
查看>>
Map的深浅拷贝的探究
查看>>