設計模式
- 設計模式(Design Pattern)是一套反復被使用、多人知曉、經過分類編目的代碼設計經驗的總結
- 使用設計模式是為了可重復用代碼、讓代碼更容易被他人理解、保證代碼可擴展性和可維護性
- 通用設計模式有23個,每一個設計模式都是某一類經典問題的解決方案
設計模式的本質
-
面向物件設計模式:
要真正理解設計模式就需要透徹理解面向物件設計原則的面向物件三大特性(封裝、繼承、多型)
-
面向物件編程技術:
設計模式的本質是面向物件編程技術的熟練和靈活應用
學習設計模式 五要素
-
名稱
每一種設計模式都有名稱,都是經過專門分類編目的,以便于學習交流
-
問題
每一種設計模式都是某一類典型問題的解決方案
-
實作
每一種設計模式都有一種或多種代碼實作方式(UML類圖)
-
優缺點
每一種設計模式都存在優缺點(沒有完美無缺的解決方案)
-
適用場景
每一種設計模式都有其常見典型的使用場景
代理模式
定義
代理模式是為目標物件創建代理物件以提供一種代理機制,讓代理物件能控制目標物件的訪問,并且可以在不改變目標物件的情況下為目標物件添加額外的功能
分類
- 靜態代理
在程式運行前由開發人員提前為目標類創建代理類
- 動態代理
在程式運行程序時運用反射機制動態為目標類創建代理類
優缺點
優點
- 代理模式在客戶物件和目標之間起到一個中介作用和保護目標物件的作用
- 代理物件可以擴展目標物件功能
- 代理模式能將客戶與目標物件分離,在一定程度上降低了系統的耦合度,增加了程式的可擴展性
缺點
- 代理模式會造成系統設計中的類數量增加
- 在客戶物件和目標物件之間增加一個代理物件,會造成請求處理速度變慢
- 在一定程度上增加了系統的復雜度
使用場景
遠程代理
為一個位于不同網路計算機的物件提供一個本地的代理(如本地網盤)
虛擬代理
如果需要創建一個消耗較大的物件,先創建一個消耗較小的的物件來表示,真實物件只在需要時才被真實創建(如圖片顯示)
安全代理
用來控制不同種類客戶對真實物件的訪問權限
智能指引
主要用于呼叫目標物件時,代理附加一些額外的處理功能(如GC垃圾回收)
延遲加載
為了提高系統的性能,延遲對目標物件的加載(如MyBatis 的延時加載)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/183871.html
標籤:其他
上一篇:【10月21日】代理模式
