java設計模式--代理設計模式
阿新 • • 發佈:2018-12-17
代理模式
- 特點:兩個子類共同實現一個介面,其中一個子類負責真實業務實現,另外一個子類完成輔助真實業務主題的操作
舉例:
玩遊戲--介面 買口紅--介面
真實主題類:你 真是主題:你
代理類:代練 代理類:代購
//抽象主題類 interface Ilipstick{ void buyLipstick(); } //真實主題類 class RealSubject implements Ilipstick{ public void buyLipstick(){ System.out.println("我要買一支口紅!"); } } //代理類 class Proxy implements Ilipstick{、 //代理所要實現的哪個類 private RealSubject subject=null; //通過建構函式傳遞代理者 public Proxy(RealSubject subject){ this.subject=subject; } public void before(){ System.out.println("取錢,排隊!"); } //實現介面中定義的方法 public void buyLipstick(){ this.before(); subject.buyLipstick(); this.after(); } public void after(){ System.out.println("郵遞,結束!"); } } public class Test{ public static void main(String[] args){ Ilipstick MyProxy=new Proxy(new RealSubject()); //MyProxy.before(); MyProxy.buyLipstick(); //MyProxy.after(); } }
- 代理模式的本質:所有的真實業務操作都會有一個與之輔助的工具類(功能類)共同完成