原型模式

基础

定义: 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。
类型: 创建类模式
关键点: 通过复制现有的实例来创建新的实例。

类图


Java代码

class Prototype implements Cloneable {
    @Override
    public Prototype clone() {
        Prototype prototype = null;
        try {
            prototype = (Prototype) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return prototype;
    }
}
class ConcretePrototype extends Prototype {
    public void show() {
        System.out.println("原型模式实现类");
    }
}
public class Client {
    public static void main(String[] args){
        ConcretePrototype cp = new ConcretePrototype();
        for (int i = 0; i < 10; i++) {
            ConcretePrototype clonecp = (ConcretePrototype)cp.clone();
            clonecp.show();
        }
    }
}

PHP代码

class Prototype
{
    public function clone()
    {
        return clone $this;
    }
}
class ConcretePrototype extends Prototype
{
    public function show()
    {
        echo "原型模式实现类\n";
    }
}
class PrototypeTest extends TestCase
{
    public function test()
    {
        $cp = new ConcretePrototype();
        for ($i = 0; $i < 10; $i++) {
            $cloneCp = $cp->clone();
            $cloneCp->show();
        }
    }
}
执行结果

原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
原型模式实现类
参考文档