代理設計模式
阿新 • • 發佈:2018-01-14
模式 操作 bsp 調用 println 對象 real int 代理上網
假設有這樣一種情景:
- l 張三借給李四5000000塊錢
- l 李四不換了,張三很生氣
- l 張三找到王五,王五是討債公司的
- l 王五準備了老虎閘和辣椒水
- l 把李四欠張三的錢拿回來了
也就是說,張三委托王五找李四要錢,也就是說王五代理了張三。
代理設計是在Java中一種常用的設計模式,所謂代理設計就是指一個代理主題來操作真實主題,真實主題執行具體的業務操作,而代理主題負責其他業務的處理,就好比生活中使用的代理上網那樣,客戶通過網絡代理連接網絡,由代理服務器完成用戶權限等操作。
不管是代理操作也好,真實的操作也好,其共同目的都是上網,至於裏面是如何操作用戶並不關心。
1 interface Network{2 public void browse(); //瀏覽上網 3 } 4 class Real implements Network{ //真是的網絡 5 public void browse() { 6 System.out.println("上網瀏覽信息"); 7 } 8 } 9 class Proxy implements Network{ //代理服務器 10 private Network network; //代理對象 11 public Proxy(Network network) {12 this.network = network; 13 } 14 public void check() { 15 System.out.println("檢查用戶是否合法"); 16 } 17 public void browse() { 18 this.check(); 19 this.network.browse(); //在代理服務器中調用真實的主題操作 20 } 21 } 22 public class TestProxy { 23 @Test 24 public voidtest() { 25 Network network = null; 26 network = new Proxy(new Real()); //指定代理操作 27 network.browse(); //客戶只關心上網一個操作 28 } 29 } 30 //檢查用戶是否合法 31 //上網瀏覽信息
代理設計模式