国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

學(xué)習(xí)筆記4:JDK代理類簡單實現(xiàn)學(xué)習(xí)

2023-04-11 17:27 作者:帽子太卡呢  | 我要投稿


DK代理是Java原生的對接口進(jìn)行強(qiáng)化的方法,可以對代碼進(jìn)行切面修改,從而在特定接口函數(shù)調(diào)用前和調(diào)用后進(jìn)行一些額外操作。這個方法相對于cglib來說不是那么通用,只能對接口進(jìn)行處理。下面簡單介紹一下進(jìn)行JDK代理類的流程

?

首先創(chuàng)建一個接口,以及其一個實現(xiàn),如下所示:

?

?

之后實現(xiàn)代理接口,如下所示:

?

?

之后,在主函數(shù)里生成一個實現(xiàn)類,以及代理類,并對接口進(jìn)行調(diào)用:

?

?

?

命令行輸出結(jié)果:

Test12:func
Test12InvocationHandler:invoke

?

可以看到,生成的接口代理類會通過InnovacationHandler接口的invoke方法來調(diào)用指定接口代碼,此處額外進(jìn)行的println操作也被觸發(fā)。

?

一些總結(jié):

JDK代理本質(zhì)是通過切面的形式對接口進(jìn)行裝飾者模式的修飾,在調(diào)用被代理的對象的前后可以進(jìn)行一定處理,根據(jù)情況也可以選擇跳過操作,或者使一個接口函數(shù)的調(diào)用完全改成另外的方法執(zhí)行。如果進(jìn)行迭代裝飾,則會按照裝飾的順序從新到舊進(jìn)行遞歸調(diào)用。

同時因為JDK代理是對一個對象進(jìn)行了裝飾,因此這個裝飾過程也是需要手動進(jìn)行的,例如通過工廠模式在創(chuàng)建進(jìn)行包裝等。

我現(xiàn)在還沒有實際需要用到JDK代理的應(yīng)用場景,如果有必要在工作中應(yīng)用的話可能在測試后能有更多理解吧。


學(xué)習(xí)筆記4:JDK代理類簡單實現(xiàn)學(xué)習(xí)的評論 (共 條)

分享到微博請遵守國家法律
宣城市| 松原市| 鸡东县| 英吉沙县| 肥西县| 常德市| 桂阳县| 嘉黎县| 台南县| 巨鹿县| 溧阳市| 定襄县| 杂多县| 弥渡县| 仁化县| 安阳市| 赣州市| 万荣县| 皋兰县| 浦北县| 南汇区| 吴桥县| 宝鸡市| 安化县| 台前县| 兴安盟| 米易县| 金华市| 丹凤县| 维西| 德阳市| 金乡县| 克山县| 勐海县| 鹤岗市| 阜宁县| 马山县| 和政县| 嘉荫县| 彭州市| 元氏县|