代理模式,为其他对象提供了一种代理以控制对这个对象的访问。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。
UML图
代理类和真实类的公用接口
public interface Subject {
void request();
}
真实类的请求
public class RealSubject implements Subject{
@Override
public void request() {
System.out.println("真实请求");
}
}
代理请求,引入了真实类对象,对方法进行了增强
public class Proxy implements Subject{
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.request();
System.out.println("代理请求");
}
}
主函数测试
public class JavaDemo {
public static void main(String[] args){
Subject proxy = new Proxy();
proxy.request();
}
}
比如当我们使用别人的代码的时候,可以通过代理,对方法增强,避免了修改别人的代码。Spring AOP。
职责清晰了,高扩展性,智能化。但由于多了一个代理对象,可能会使请求的处理速度变慢,有些代理的实现较为复杂。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。