五、 接口延伸出的代理模式
阿新 • • 發佈:2018-04-19
使用 ID inf pro 處理 oid proxy 圖片 destory
示例:
// 主題接口:定義了核心功能 interface Subject { public abstract void eat(); } // 核心主題:實現了主題接口,並且只實現核心功能 class RealSubject implements Subject { public void eat() { System.out.println("核心主題RealSubject要XXXX"); } } // 代理主題:實現了主題接口,完成核心主題的輔助性工作 class ProxySubject implements Subject { Subject subject;public ProxySubject(Subject subject) { this.subject = subject; } public void prepare() { // 代理主題處理的輔助性操作 System.out.println("代理主題準備就緒!"); } public void eat() { // 核心主題要做的事 this.subject.eat(); } public void destory() { // 代理主題處理的輔助性操作 System.out.println("代理主題善後完畢!"); } }// 測試類 class TestProxy { public static void main(String[] args) { Subject realSubject = new RealSubject(); // 核心主題 Subject proxySubject = new ProxySubject(realSubject); // 代理主題 proxySubject.prepare(); proxySubject.eat(); proxySubject.destory(); } }
代理設計模式:
有一個主題操作接口(可能有多種方法),核心業務主題只完成核心功能,比如:吃飯,
而代理主題負責完成所有與核心主題有關的輔助性操作。
示例圖:
參考:
· 自己寫的接口,絕對不要使用關鍵字new直接實例化接口子類,使用工廠類完成。
五、 接口延伸出的代理模式