原型模式概念
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
使用场景
它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。原型模式适用于大型对象的创建,创建一个大型对象需要很大的开销,如果每次new就会消耗很大,原型模式只需内存拷贝即可
主要角色
抽象原型(Prototype)角色:声明一个克隆自身的接口
具体原型(Concrete Prototype)角色:实现一个克隆自身的操作
原型模式实例
name = $name;
}
function getName(){
return $this->name;
}
function setName($name){
$this->name = $name;
}
//克隆
function copy(){
return clone $this;
}
}
//客户端
class Client {
public static function main(){
$pro = new ConcretePrototype('test');
$pro2 = $pro->copy();
echo $pro->getName();
echo $pro2->getName();
}
}
Client::main();
?>