1. 程式人生 > >五、 接口延伸出的代理模式

五、 接口延伸出的代理模式

使用 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直接實例化接口子類,使用工廠類完成。

五、 接口延伸出的代理模式