【PHP】原型模式


<?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 />';
*/



?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mumu_wangwei

主修"红尘道--红尘练心"

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值