【10月21日】代理模式

設計模式

  • 設計模式(Design Pattern)是一套反覆被使用、多人知曉、通過分類編目的代碼設計經驗的總結
  • 使用設計模式是爲了可重複用代碼、讓代碼更容易被他人理解、保證代碼可擴展性和可維護性
  • 通用設計模式有23個,每個設計模式都是某一類經典問題的解決方案

設計模式的本質

  • 面向對象設計模式:編程

    要真正理解設計模式就須要透徹理解面向對象設計原則的面向對象三大特性(封裝、繼承、多態)設計模式

  • 面向對象編程技術:安全

    設計模式的本質是面向對象編程技術的熟練和靈活應用網絡


學習設計模式 五要素

  1. 名稱性能

    每一種設計模式都有名稱,都是通過專門分類編目的,以便於學習交流
  2. 問題學習

    每一種設計模式都是某一類典型問題的解決方案
  3. 實現設計

    每一種設計模式都有一種或多種代碼實現方式(UML類圖)
  4. 優缺點代理

    每一種設計模式都存在優缺點(沒有天衣無縫的解決方案)
  5. 適用場景面向對象設計模式

    每一種設計模式都有其常見典型的使用場景

代理模式


定義

代理模式是爲目標對象建立代理對象以提供一種代理機制,讓代理對象能控制目標對象的訪問,而且能夠在不改變目標對象的狀況下爲目標對象添加額外的功能對象


分類

  • 靜態代理
在程序運行前由開發人員提早爲目標類建立代理類
  • 動態代理
在程序運行過程時運用反射機制動態爲目標類建立代理類

優缺點

優勢

  • 代理模式在客戶對象和目標之間起到一箇中介做用和保護目標對象的做用
  • 代理對象能夠擴展目標對象功能
  • 代理模式能將客戶與目標對象分離,在必定程度上下降了系統的耦合度,增長了程序的可擴展性

缺點

  • 代理模式會形成系統設計中的類數量增長
  • 在客戶對象和目標對象之間增長一個代理對象,會形成請求處理速度變慢
  • 在必定程度上增長了系統的複雜度

使用場景

遠程代理

爲一個位於不一樣網絡計算機的對象提供一個本地的代理(如本地網盤)

虛擬代理

若是須要建立一個消耗較大的對象,先建立一個消耗較小的的對象來表示,真實對象只在須要時才被真實建立(如圖片顯示)

安全代理

用來控制不一樣種類客戶對真實對象的訪問權限

智能指引

主要用於調用目標對象時,代理附加一些額外的處理功能(如GC垃圾回收)

延遲加載

爲了提升系統的性能,延遲對目標對象的加載(如MyBatis 的延時加載)

相關文章
相關標籤/搜索