
<?php
/**
**原型设计模式:
*** 抽象原型模式:声明一个克隆自己的接口
*** 具体原型模式:实现一个克隆自己的操作
**优点:可以在运行时刻 ,增加删除一个
** 可以改变值和对象 ,以改变新对象
** 用类动态配置应用
** 支持取消操作
** 支持修改日志操作
****/
interface Protype{
public function copy();
}
class Operation implements Protype{
private $obj;
public function __construct($name){
$this->obj = $name;
}
public function getName(){
return $this->obj;
}
public function setName($name){
$this->obj = $name;
}
public function copy(){
return clone $this;
}
}
class Client{
public static function main(){
$newson = new Operation('nnnn');
var_dump($newson->copy());
}
}
Client::main();