代理模式:为其他对象提供一种代理以控制对这个对象的访问。
说白了:代理类就是真实对象的代表。代理类和真实类都实现相同的接口。
代理类中保存了一个真实对象的引用,调用的方法是调用的真实引用的方法。
package com.proxy;
public class ProxyDemo {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}
interface Subject {
// Subject类,定义了RealSubject和proxy的公用接口
public void request();
}
class RealSubject implements Subject {
// 为真实类,为代表的真实实体
public void request() {
System.out.println("我是真实类,是我要去追求那个女孩");
}
}
class Proxy implements Subject {
private RealSubject realSubject = null; // 保存一个引用,使得代理可以访问实体真实类
public void request() {
if (this.realSubject == null) {
this.realSubject = new RealSubject();
}
realSubject.request();
}
}