大话java的代理模式

1.代理模式的介绍
代理模式是java中常见,也是重要的一种模式,比如spring中的aop就是代理模式的一种应用。
那么代理模式究竟有什么作用?代理模式就是“控制和管理对象的访问”。相对于简单粗暴地直接访问对象、调用对象的方法,使用代理模式可以在对象的使用时,进行预处理和事后处理等。比如权限控制、日志记录。当然你可以直接在对象里,做这些操作,但是这样耦合性太高,不利于代码的维护。

2.如何使用代理模式
一个实现代理模式的demo,主要需要3个类

1)委托类接口

//委托类接口
public interface TestService {

    void business();

}

2)委托类的实现

//委托类的实现类
public class TestImplement implements TestService{

    @Override
    public void business() {
        System.out.println("do the busniess");
    }

}

3)代理类

//委托类的代理类,注意需要implements 委托类
public class StaticProxy implements TestService{

    private TestService testService;

    public StaticProxy(TestService testService) {
        this.testService = testService;
    }

    @Override
    public void business() {
        //可以做一些预处理,比如数据处理、权限控制等
        System.out.println("before invoke,I can do something.");

        testService.business();

        //可以做一些事后处理,比如执行结果的记录,事务提交等
        System.out.println("before invoke,I can do something.");
    }
}

测试方法:

TestService service = new TestImplement();
StaticProxy proxy = new StaticProxy(service);
proxy.business();

测试输出结果:
before invoke,I can do something.
do the busniess
before invoke,I can do something.

以上就是代理的简单的一种实现,我们也叫静态代理。因为这样的实现方式,需要为每个委托类都写代理类,会产生大量的代理类,也不利于代码的复用和项目的解耦,所以我们会使用动态代理去解决这些问题。关于动态代理的详细介绍会在下篇中继续大话。

这是本人对于代理模式的一些理解,十分欢迎大家的指教和讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值