代理模式(Proxy)
代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或不能直接引用其他的对象,而代理对象可以在客户端和目标之间起
到中介的模式。
代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象和调用者之间插入一个代理对象,这些额外的操作通常是需要与实际对象进行通信
代理模式包含以下角色:
ISubject:抽象主题角色,是对象和他的代理公用的接口
RealSubject:真是主题角色,是实现抽象主题接口的类
Proxy:代理角色,内部含有对真是对象的引用,从而可以操作真是对象。代理对象和真实对象实现共同的接口以便可以随时替换真实对象。此外,代理对象在执行真实对象的时候可以附加其他的操作,相当于对真实对象进行了封装。动态代理实现的关键是反射
静态代理
场景:房东想将房子租出去,又不想直接与租户接触,此时就需要中介来完成这个任务
缺点:因为代理对象需要和目标对象实现同样的接口,所以会有很多的代理类,同时,一旦接口增加方法后目标对象和代理对象都需要维护
抽象主题角色:
真实主题角色(房东)
代理角色
测试类:
动态代理
优点:
1、减少代码量,当需要多种处理逻辑的时候只需要写多个代理类就可以了不用每中方法都写一个代理类
2、系统扩展性和维护性增强,方便后续 程序的修改
动态代理类:
测试类:
时间: 2024-10-21 20:22:09