java 代理的作用 因素 以及对代理的理解

首先代码就不附上了,随便一搜就可以找到大量的例子,浅谈一下代理的重要因素,代理的实现,代理的作用概念性的理解:


代理作用:

(静态代理)试想有这么一个公共类(接口),里面有很多方法,如果得到了这个接口的实例就可以调用接口的所用方法,但是,这个公共类又不想让其中一些类调用某些方法, 这时代理模式就出现了,代理类实现了公共类(接口),并全部处理公共类的方法,如果代理类不想让某些类调用到某些方法,代理类只需在改方法内部返回为空, 或者抛出异常等,
总结一句: 为其他对象提供一种代理以控制对这个对象的访问

(静态代理实现)

1. 要有一个接口,接口内声明一些方法,eg: doSomething();
2. 一个或多个class, 这些class 需实现这个接口;
3. 一个代理class,代理class 需实现这个接口;
代理class 在 doSomething() 内部调用 2 中的doSomething 方法, 一般在代理类会根据参数来决定调用哪个 class.

(动态代理)相对于静态代理而言,动态代理控制住了代码量,比如上面3 中, 如果有很多个接口, 你岂不是要创建很多个代理类。
很简单,动态代理类只需要实现InvocationHandler 就可以了,通过 Method.invoke() 反射来调用,在实现InvocationHandler.invoke 里面也可以添加额外的逻辑,

小有点aop 的意思。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值