注册 登录  
 加关注

网易博客网站关停、迁移的公告:

将从2018年11月30日00:00起正式停止网易博客运营
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

php开发lnmp

《西安--木木》-经历丰富了生活。 架构师QQ群: 246695517

 
 
 

日志

 
 

原型模式  

2018-03-12 14:57:43|  分类: 设计模式--php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
/**
原型模式
*/
/**
定义:原型模式使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。

属性:原型模式属于对象创建型模式。

*/

//抽象原型类
interface Prototype{
public function shanllowCopy();
public function deepCopy();
}

//具体类
class ConcretePrototype implements Prototype{
public $name = 'yy';

private $attachment = null;
//浅拷贝
public function shanllowCopy(){
return clone $this;
}

//深拷贝

public function deepCopy(){

$serialize_obj = serialize($this);
$clone_obj = unserialize($serialize_obj);
return $clone_obj;
}

public function setAttachment($attachment)
{
$this->attachment=$attachment;
}

}


//引用类
class Attachment
{
public $string;
public function setName($str){
$this->string = $str;
}
}





//客户端
/*
//创建原型对象
$obj = new ConcretePrototype();
//$obj->name = 'mumu';

//引用类
$attachment = new Attachment();
$attachment->string= 'dsfvd';
$obj->setAttachment($attachment);

//浅拷贝
$shanllow_obj = $obj->shanllowCopy();

//深拷贝
$deep_obj = $obj->deepCopy();

var_dump($obj);
var_dump($shanllow_obj);
var_dump($deep_obj);
var_dump($shanllow_obj ==$obj);
var_dump($obj ==$deep_obj);

$obj->name = 'mumu';

echo 'shanllow_obj->name:',$shanllow_obj->name,'<br />';
echo 'deep_obj->name:',$deep_obj->name,'<br />';
*/



?>


  评论这张
 
阅读(30)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018