定義:爲其他對象提供一種代理以控制對這個對象的訪問。
代碼:
package proxy_model;
/**
* @author naivor
* 代理模式-場景類
*/
public class ProxyModel {
public static void main(String[] args) {
Request subject=new Proxy(); //請求時直接找代理者,代理處理了請求
subject.request();
}
}
/**
*
* @author naivor
* 代理模式-請求抽象類
*/
abstract class Request{
public abstract void request();
}
/**
*
* @author naivor
* 代理模式-真實請求類
*/
class RealRequest extends Request{
@Override
public void request() {
//被代理者的業務邏輯
}
}
/**
*
* @author naivor
* 代理模式-代理類
*/
class Proxy extends Request{
private RealRequest target;
@Override
public void request() {
if (target==null) {
target=new RealRequest();
}
target.request();
}
}