java代理設計模式

代理模式是我們寫代碼過程中經常使用的模式,可以分爲靜態代理和動態代理。其通常由兩部分構成,即代理類和委託類,他們對外暴露同樣的業務方法(即實現相同的接口)。委託類是實際進行業務操作的類,代理類中會封裝一個委託類實例,對業務方法的處理就是轉調委託類實例相應方法。實際使用中,用戶得到的是代理類實例,那爲什麼要在委託類上封裝一層呢?我們先看一個實際生活的例子吧。下面以租房的例子來給大家介紹下靜態代理。

舉個例子,比如房東需要出租房子,但是房東比較忙,沒有時間浪費在出租房屋上,這個時候他可以把租房的權利代理給中介,這時候中介就具有了出租房屋的權利。下面來用java代碼實現這個簡單案例.

首先我們創建一個接口。如下圖
java代理設計模式

第二步, 創建房東類並實現服務接口Rent.

java代理設計模式

小編是一個有着5年工作經驗的java程序員,對於java,自己有做資料的整合,一個完整學習java的路線,學習資料和工具,相信這裏有很多學習java的小夥伴,我創立了一個2000人學習扣羣,479121291。每晚都有java的直播課程。無論是初級還是進階的小夥伴小編我都歡迎!

第三步:創建房東的代理類:中介,也實現服務接口。

java代理設計模式

在這個類裏面我們在添加一些其他的業務方法。

好了,最後我們寫個main方法來測試下。如下:java代理設計模式

執行結果如下java代理設計模式

通過這個小案例我們可以發現靜態代理的有點在於:

業務類只需要關注業務邏輯本身,保證了業務類的重用性。這是代理的共有優點。不過靜態代理也有缺點,如下:

缺點: 代理對象的一個接口只服務於一種類型的對象,如果要代理的方法很多,勢必要爲每一種方法都進行代理,靜態代理在程序規模稍大時就無法勝任了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章