7.Java代理的几种实现方式

代理简述

代理模式
代理这个词在生活中很常见。设想这样一个场景,假如你需要购买一个海外的包包,那么这个时候你一般会怎么办呢?第一反应是自己跑到海外去购买,然后再回来。em,说的很轻松,但是这个过程确是及其麻烦并且困难的。先不说你能不能最终买到这个包包,中间的一些列花费就够折腾的了。所以,这个时候代购就出现了。我们完全可以找代购去帮我们解决我们的这个需求,我们只需要找到专业的代购,告诉他们我们想要的包包是啥样的,剩下的事情就只管交给他们就是了。
在Java中,也有代理的概念。Java中的代理指的是,当我们需要实现某个功能或者需求的时候,一个对象想要访问另外一个类的方法或者对象,但是由于一些其他原因,可能并不能直接访问该类的方法或者对象,这个时候就可以通过另外一个类或者对象去访问。
在这个过程中,把我们想要访问的对象称为目标对象,中间的这个对象称之为代理对象,也叫做代理。
事实上,代理模式是Java中23种设计模式之一代理模式是指,为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用。
换句话说,使用代理对象,是为了在不修改目标对象的基础上,增强主业务逻辑。客户类想要访问的对象是目标对象,但客户类可以访问的对象是代理对象。客户类对目标对象的访问是通过访问代理对象来实现的。当然,代理类与目标类要实现同一个接口。
例如,有A,B,C三个类。A原来可以调用C类的方法,现在因为某些原因C类不允许A类调用其方法,但B类可以调用C类的方法。A类可以通过B类调用C类的方法。这里的B就是A的代理。

静态代理

静态代理代理类是手动实现的Java文件,同时代理的目标对象是规定好了的。

动态代理

动态代理,使用反射机制,在程序执行过程中,创建代理类对象。
特点:不用创建代理类,可以给不同的目标随时创建代理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值