分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

PHP设计模式:原型模式

发布时间:2023-09-06 01:29责任编辑:傅花花关键词:PHP
sdfasd


<?php/** * 原型模式(深拷贝+浅拷贝) */declare(strict_types=1);//开启强类型模式class CopyObj{    public $array;}//抽象原型类abstract class Prototype{    protected $attach;    public function __construct(CopyObj $obj)    {        $this->attach = $obj;    }    public function set($name, $value)    {        $this->$name = $value;    }    public function get($name)    {        return $this->$name;    }    public function getAttach()    {        return $this->attach;    }    abstract public function clone();}class DeepCopy extends Prototype{    public function clone()    {        $obj = clone $this;        return $obj;    }}class ShallowCopy extends Prototype{    public function clone()    {        $serializeObj = serialize($this);        $obj = unserialize($serializeObj);        return $obj;    }}

123

123

//----------深拷贝--------------$chairman = new CopyObj();$chairman->array = ['×××', '×××', '江泽明'];$deepCopyObj1 = new DeepCopy($chairman);$deepCopyObj2 = $deepCopyObj1->clone();echo "<pre>";var_dump($deepCopyObj1->getAttach());var_dump($deepCopyObj2->getAttach());//修改对象$chairman->array = ['×××', '×××'];var_dump($deepCopyObj1->getAttach());var_dump($deepCopyObj2->getAttach());

asdsad

//-------------浅拷贝-------------$start = new CopyObj();$start->array = ['刘德华', '张学友', '郭富城', '黎明'];$deepCopyObj3 = new ShallowCopy($start);$deepCopyObj4 = $deepCopyObj3->clone();var_dump($deepCopyObj3->getAttach());var_dump($deepCopyObj4->getAttach());//修改对象$start->array = ['周杰伦'];var_dump($deepCopyObj3->getAttach());var_dump($deepCopyObj4->getAttach());


PHP设计模式:原型模式

原文地址:http://blog.51cto.com/phpme/2047833

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved