5_代理模式
代理模式
追求者通过代理送东西给被被追求者
没有代理的代码
被追求者不知道追求者!!!,追求者只能通过代理,代理知道被追求者
那么我们可以如下图所示
public class Proxy implements Subject{
private RealSubject realSubject;
public Proxy(RealSubject real){
this.realSubject=real;
}
public Proxy(){
if(realSubject==null){
this.realSubject = new RealSubject();
}
}
@Override
public void Request() {
realSubject.Request();
}
}
public class RealSubject implements Subject{
@Override
public void Request() {
System.out.println("请求");
}
}
public interface Subject {
void Request();
}
代理模式的应用场合
- 远程代理,为一个对象再不同的地址空间提供局部代表,这样可以隐藏对象存在不同空间的事实
- 虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象,比如有一个很大的html文件,我们可以很快打开它,但是图片使一张一张下载的,这时候代理存放的是这些文件的地址。
- 安全代理,用来控制真实对象访问的权限。一般是用于对象的不同权限访问(因为一个代理可以对应多个对象,通过代理来选择相应的对象)
- 智能代理,调用真实代理时,代理处理一些例外的事(使用父类的方法来套娃)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)