代理模式的定義:Provide a surrogate or placeholder for another object to controlaccess to it(為其他對象提供一種代理以控制對這個對象的訪問)。使用代理模式創建代理對象,讓代理對象控制目標對象的訪問(目標對象可以是遠程的對象、創建開銷大的對象或需要安全控制的對象),並且可以在不改變目標對象的情況下添加一些額外的功能。
這裡記錄下其中的靜態代理,UML類圖:
public interface Subject {
public void operatetion();
}
public class RealSubject implements Subject{
@Override
public void operatetion() {
//核心業務實現
}
}
public class Proxy implements Subject{
private Subject subject;
public Proxy(Subject subject){
this.subject =subject;
}
@Override
public void operatetion() {
doSomeThing();//增強業務
subject.operatetion();
doSomeThing();
}
private void doSomeThing(){}
}
靜態代理模式結構簡單,一目了然。