【PHP设计模式】克隆模式

113 阅读1分钟

【克隆模式】

      克隆模式是通过内存拷贝的方法拷贝父本对象的所有属性,分配一块新的内存空间给新的对象,比 new 的方式创建对象性能更好。通过克隆的方式创建对象,不会执行类的构造函数。

      结构:使用Clone方法 

      示例:以克隆一个人为例

<?php
namespace app\index\controller;
class Test
{
    private $name;
    private $age;
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function mySelf() {
        echo "我是{$this->name}, 年龄{$this->age}" . PHP_EOL;
    }

    public function play() {
        echo "玩..." . PHP_EOL;
    }

    public function work() {
        echo "工作..." . PHP_EOL;
    }

    public function copy() {
        return clone($this);
    }
}

$tom = new Test("Tom", 28);
$tom->mySelf();
$tom->play();
$tom->work();

//克隆对象
$tom1 = $tom->copy();
$tom1->mySelf();
$tom1->play();
$tom1->work();