Java學習——代理模式
阿新 • • 發佈:2018-11-06
代理模式
特點:兩個子類共同實現同一個介面,其中一個子類負責真實業務實現,另一個子類完成輔助真實業務主題的操作
玩遊戲——介面
真實主題類——自己
代理類——代練
買口紅——介面
真實主題類——自己
代理類——代購
一個簡單的代理模式
interface ISubject{ void buyLipstick(); } class realSubject implements ISubject{ @Override public void buyLipstick() { System.out.println("買口紅"); } } class proxySubject implements ISubject{ //代理需要知道真實客戶 //意思是我不知道具體的客戶是誰 //但是找我的人一定是買口紅 private ISubject realSubject; public proxySubject(ISubject realSubject){ this.realSubject = realSubject; } public void beforeBuylipstick(){ System.out.println("取錢、排隊"); } public void afterBuylipstick(){ System.out.println("送貨"); } @Override public void buyLipstick() { beforeBuylipstick(); realSubject.buyLipstick(); afterBuylipstick(); } } public class Test { public static void main(String[] args) { proxySubject proxySubject = new proxySubject(new realSubject()); proxySubject.buyLipstick(); } } /**輸出 取錢、排隊 買口紅 送貨 */
代理模式的本質:所有的真實業務操作都會有一個與之輔助的工具類(功能類)共同完成。