设计模式(17)-原型模式


原型模式

简介

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

从一个对象再创建另一个可定制的对象,而且不需要知道任何创建的细节

代码示例

<?php
abstract class Prototype
{
    private $id;

    public function __construct($id)
    {
        $this->id = $id;
    }

    public function getId()
    {
        return $this->id;
    }

    public function setId($id)
    {
        $this->id = $id;
    }

    public abstract function cloneOne();
}

class ConcretePrototype extends Prototype
{
    public function __construct($id)
    {
        parent::__construct($id);
    }

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

$p1 = new ConcretePrototype('a');
$p1->setId('p1');
$c1 = $p1->cloneOne();
//var_dump($p1 === $c1);
$c1->setId('c1');
echo $p1->getId() . PHP_EOL;
echo $c1->getId() . PHP_EOL;

文章作者: 江湖义气
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 江湖义气 !
  目录