日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用动态代理解决网站字符集编码问题:(之前通过拦截器)

發布時間:2025/3/12 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用动态代理解决网站字符集编码问题:(之前通过拦截器) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用動態代理解決網站字符集編碼問題:(之前通過攔截器)

?

設計模式:

在軟件開發的過程中,遇到相識的問題,將問題的解決方式抽象為模型(套路)

單例模式(靜態代碼只會執行一次),工廠模式,動態代理,裝飾者模式,適配器

?

裝飾者模式的介紹:

谷歌汽車場景:

1. Java設計了汽車開發的約定

interface ICar(start,run,stop)

class GoogleCar implements ICar{}

2. 希望在將谷歌car接入生態圈時候,增強汽車啟動的功能

3.考慮的方向有:直接修改GoogleCar源碼;使用繼承

4. 二次開發的時候如果無法獲得源碼并且無法使用繼承,final class如果需要增強某個對象的一個方法的時候,要考慮裝飾者模式。

前提是:可以獲取到被裝飾 的對象GoogleCar實現的所有接口,(ICar)
實現思路:自定義裝飾類實現ICar接口,為自定義裝飾類傳遞被裝飾的對象(即:

main函數new的時候是這樣的

ICar car = new MyCar(new GoogleCar())

ICar接口:對外公開的

谷歌開發的car,源碼不對外開放:

我自己開發的car,增加一個有參構造器,實現ICar

?

啟動main函數:記得構造器的參數要傳入GoogleC對象:

這個就是所謂的裝飾者模式。

?

?

裝飾者的弊端:如果被實現的接口方法太多,裝飾類中的方法過多冗余

解決方法:

動態代理模式:(代理對象)==》用于方法增強

原理:通過虛擬機在內存中創建類似于MyCar.class文件

? ?要創建class文件告訴虛擬機:

1. 被創建的字節碼文件應該有多少方法

2. 創建一個代理對象來增強這些方法

?

?

?

1. 字節碼加載器:JDK有一些程序,專業將各種字節碼文件加載到內存,這類程序簡稱字節碼加載器

2. 如何將字節碼文件class文件加載到內存?

底層實現過程是利用IO流技術,獲取文件中的數據加載到內存,然后進行判斷和檢查。

加載器主要有三種:引導類加載器(BookStrapClassLoader),擴展類加載器(extensionClassLoader,ext),

應用類加載器(APPClassLoader,自定義的類)

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的使用动态代理解决网站字符集编码问题:(之前通过拦截器)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。