代理模式
1、代理模式介绍
代理模式也称为委托模式,结构化模式,就好像现实生活中请律师代理诉讼一样,本质上是为其他对象提供一个代理以控制对这个对象的访问
2、代理模式的使用场景
当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用透明性,委托对象与代理对象需要实现相同的接口
3、代理模式简单组成
(1)抽象主题类:声明真实主题与代理共同接口方法
(2)具体主题类:定义了代理所表示的真实对象,客户类可以通过代理类间接地调用真实主题类中定义的方法
(3)代理类:该类也称为委托类,有一个真实主题类的引用,在其所实现的接口方法中调用真实主题类中相应的接口方法执行,以此起到代理的作用
4、代理模式的简单实现
联想到请律师,通过当事人的辩护、证据、以及请求方法,都可以用律师这个代理类来实现,简单来说就是律师充当了这个代理的角色
代理也分为动态代理以及静态代理,静态代理是代码运行前代理类的class编译文件就已经存在了,而动态代理则是通过反射机制动态生成代理者对象,在code阶段不知道代理谁,java提供了一个便捷的动态代理接口InvocationHandler,实现接口重写其调用方法invoke
public class DynamicProxy implements InvocationHandler{
&