码迷,mamicode.com
首页 > 编程语言 > 详细

java代理

时间:2015-12-24 19:14:12      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

谈一下java的代理:

spring的使用目前较为普及,其实从spring中可以看到很多的常见的设计模式,常见的设计架构思路。比如代理机制,spring的事务管理,aop,拦截器,安全检查,日志输出......

这些都可以看作是代理的实现,当然还不止这些。简单的写几个测试类,阐述一下java的代理:

所谓的静态代理:

public interface AmountCaculate{

    public BigDecimal add();

    public BigDecimal multi();

}

public class AmountCaculateImpl implements AmountCaculate{

    public BigDecimal add(){

        //todo

    }

    public BigDecimal multi(){

       //todo

   }

}

如果要在add,multi方法之前,做一步公共操作,规范起见,我们需要持有一个AmountCaculate的引用,于是:

public class AmountCaculateProxy implements AmountCaculate{

    private AmountCaculate amountCaculate;

    public BigDecimal add(){

      saveOperator();

        amountCaculate.add();

   }

 

    public BigDecimal multi(){

        saveOperator();

        amountCaculate.mutil();

   }

}

这样,AmountCaculate temp=new AmountCaculateProxy(new AmountCaculateImpl());就OK了。

所谓的动态代理:

动态代理也是spring中经常用到的技术,java为我们提供运行时创建对象的反射机制,用它我们可以轻松地创建目标对象,调用目标对象的目标方法。

java中我们可以实现InvocationHandler,然后在目标对象执行方法之前,方法之后,甚至方法ing,我们可以加入垂直的处理逻辑,听着像拦截器。

可以自己动写一个。

 

java代理

标签:

原文地址:http://www.cnblogs.com/render-inside/p/5073978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!