原文链接:设计模式——代理模式
2021-07-04 23:30 晚 🐟
**代理模式(proxy):**为其他对象提供一种代理,以控制对这个对象的访问
**举例:**代购,将你的需求讲给代购,代购给你买。
应用场景:
1、远程代理:为一个对象在不同的地址空间提供局部代表
2、虚拟代理:根据创建开销很大的对象,通过它来存放实例化需要时间很长的真实对象。
3、安全代理:用来控制真实对象访问时的权限、
public abstract class Subject {
/**
* 代理模式请求
* fixme 代理者,真实者必须实现此接口
*/
public abstract void request();
}
// 继承类
public class RealRequest extends Subject {
@Override
public void request() {
/**
* fixme 这里是真正的实现方法
*/
System.out.println("真正的实现方法");
}
}
public class Proxy extends Subject {
private RealRequest realRequest;
@Override
public void request() {
if (realRequest == null) {
// 懒加载模式
realRequest = new RealRequest();
}
realRequest.request();
// fixme 在这里进行业务增强,比如:增强打印功能,写日志功能,等...
}
}