代理模式——HeadFirst设计模式学习笔记
生活随笔
收集整理的這篇文章主要介紹了
代理模式——HeadFirst设计模式学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代理模式:為另一個對象提供一個替身或占位符控制這個對象的訪問
?
?
特點:
- 讓代理對象控制對象的訪問,被代理對象可以是遠程對象(遠程代理),創建開銷較大對象(虛擬代理),或需要安全控制的對象(保護代理)
- 為另一個對象提供代表,以便控制客戶對對象的訪問
?
代理分類:
- 遠程代理:好比遠程對象(在不同JVM虛擬機的對象)的本地代表(本地方法的行為轉移到遠程),幫助我們處理網絡上的細節
- 代理假裝自己是遠程對象,不過只是一個中間角色,處理訪問遠程對象
-
Java RMI提供了客戶輔助對象stub和服務輔助對象skeleton,并為其提供相同的方法
- 注意方法返回值需要設置為可序列化對象Serializable,不需要序列化的狀態變量使用transient聲明
- 注意處理遠程訪問異常
- 執行過程:從遠程獲取代理對象 -》客戶調用代理對象的方法 -》調用發送到遠程 -》遠程接受調用信息并在具體對象上操作 -》獲得結果返回給代理 -》代理把結果告訴客戶
- 虛擬代理:作為創建開銷大的對象的代表
- 在大對象創建前和創建中由虛擬對象代替大對象,在創建完畢后將動作委派給大對象
- 保護代理:通過代理實現不同的用戶對對象有不同的訪問權限
- 動態代理:通過反射在運行過程中動態的創建代理,根據傳入的接口集創建。Java內置動態代理支持
- 防火墻代理:控制網絡資源的訪問,保護主題免于壞客戶的侵害
- 智能引用代理:當主題被引用時,進行額外的動作,例如記錄獨享被引用的次數
- 緩存代理:為開銷大的運算結果提供暫時存儲;允許多個客戶共享結果,減少計算或網絡延遲
- 同步代理:多線程下為主題提供安全訪問
- 復雜隱藏代理:用來隱藏一個類的復雜集合的復雜度
- 寫入時復制代理:用來控制對象的復制,延遲對象的復制,知道客戶真的需要
轉載于:https://www.cnblogs.com/HectorHou/p/6014159.html
總結
以上是生活随笔為你收集整理的代理模式——HeadFirst设计模式学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 客户端的云桌面平台配置与开启(附,登录“
- 下一篇: 手机APP测试如何进行兼容性测试?