設計模式筆記 – 代理模式

分類

  • 結構型

模式的目的(定義)

  • 為某個真實的對象提供一個「代理」/替身,從而控制對該真實對象的訪問
  • 真實對象一般是:
    • 網絡/服務端上的遠程對象 – 遠程代理
    • 創建開銷大的資源對象 – 虛擬代理
    • 等等

使用場景例子

  • 遠程代理
    • 創建一個ProtocolSystem類,客戶端的所有對象通過這個類向服務端對象發送請求
    • 這個代理類負責了協議的包裝,請求轉發等細節
  • 虛擬代理
    • 大開銷對象的延遲創建
      • 如:圖像、音頻等需要一段時間加載的資源對象
    • 在該對象創建前/創建時扮演該對象的替身,提供對外的訪問接口
      • 該訪問接口被調用時,再去創建大開銷對象
      • 大開銷對象被創建,該訪問接口就直接把訪問委托給該對象

類圖

參考書目

  • 《Head First Design Patterns》Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates