代理模式的定義: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(){} }
靜態代理模式結構簡單,一目了然。