php实现代理模式静态+动态代理

本文介绍了代理模式在PHP中的应用,包括静态代理和动态代理。静态代理需要目标对象与代理对象共同实现同一接口,通过代理对象调用目标对象的方法。动态代理则不需要代理对象实现接口,而是利用反射在运行时动态构建代理对象,提供更灵活的扩展性。文章总结了静态代理的优缺点,并对比了动态代理的特点。
摘要由CSDN通过智能技术生成

代理模式就是代理目标对象,实现对其访问控制,通过代理人来完成实现功能

静态代理就是显示地代理目标对象,思想是
静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类

使用时需要注意:
代理对象与目标对象要实现相同的接口,然后通过调用相同的方法来调用目标对象的方法

代码实现

统一的接口

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.可以在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值