Java静态代理模式

本文介绍了Java编程中的静态代理模式,通过一个简单的示例展示了如何创建Subject接口、RealSubject实现类以及CommonProxy代理类。在代理类中,可以在执行业务逻辑前后添加额外的操作,如预处理和后置处理。在测试类中,展示了如何通过代理类调用RealSubject的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态代理模式

        

 

Subject:程序中的业务接口,定义了相关的业务方法

RealSubject:实现了Subject接口的业务实现类,其实现中完成了真正的业务逻辑。

Proxy:代理类,实现了Subject接口,其中会持有一个Subject类型的字段指向一个RealSubject对象。

Proxy代理能够控制使用方对RealSubject对象的访问,或者在执行业务逻辑前执行统一的预处理逻辑,在执行业务逻辑之后执行统一的后置处理逻辑。

目标接口

public interface Subject {
    void sayHello();
}

目标类

public class RealSubject implements Subject{

    @Override
    public void sayHello() {
        System.out.println("hello, I am RealSubject");
    }
}

代理类

public class CommonProxy implements Subject {
    private Subject sub;
    public CommonProxy(Subject subject){
        sub = subject;
    }


    @Override
    public void sayHello() {
        System.out.println("before do...");  // 在执行业务逻辑之前的预处理逻辑
        sub.sayHello();
        System.out.println("after do...");  // 在执行业务逻辑之后的后置处理逻辑
    }
}

测试

public class Test {
    public static void main(String[] args) {
        Subject subjectProxy = new CommonProxy(new RealSubject());
        subjectProxy.sayHello();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值