代理模式就是代理目标对象,实现对其访问控制,通过代理人来完成实现功能
静态代理就是显示地代理目标对象,思想是
静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类
使用时需要注意:
代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法
代码实现
统一的接口
interface IUser{
public function save();
}
目标对象实现接口:
class User implements IUser{
public function save() {
echo "保存用户信息";
}
}
代理对象实现接口:
class UserProxy implements IUser{
private $target;
public function __construct($target){
$this->target = $target;
}
public function save(){
echo "静态代理前置操作";
$this->target->save();
echo "静态代理后置操作";
}
}
测试用例
$proxy = new UserProxy(new User));
$proxy->save();
静态代理总结:
1.可以在