1. 程式人生 > >設計模式(九)代理模式

設計模式(九)代理模式

代理模式(Proxy)為其他物件提供一種代理以控制對這個物件的訪問

public abstract class Subject {
    public abstract void request();
}
public class RealSubject extends Subject {
    @Override
    public void request() {
        System.out.println("真實的請求");
    }
}
public class Proxy extends Subject {
    RealSubject realSubject;
    @Override
    public void request() {
        if(realSubject==null)
        {
            realSubject=new RealSubject();
        }
        realSubject.request();
    }
}

public class Main {
    public static void main(String[] args) {
        Proxy proxy=new Proxy();
        proxy.request();
    }
}

代理模式的應用

1.遠端代理,為一個物件在不同的地址空間提供區域性代表。這樣可以隱藏一個物件存在於不同地址空間的事實

2.虛擬代理,根據需要建立開銷很大的獨享。通過它來存放例項化需要很長時間的真實物件

3.安全代理,用來控制真實物件訪問許可權

4.智慧索引,當呼叫真實的物件時,代理處理另外一些事