當前位置:趣味科普網>經驗>

動態代理和靜態代理的區別

經驗 閱讀(1.64W)

動態代理和靜態代理的區別

動態代理和靜態代理的區別如下:

1、靜態代理業務類只需要關注業務邏輯本身,保證了業務類的重用性。代理物件的一個介面只服務於一種型別的物件,如果要代理的方法很多,需要為每一種方法都進行代理,靜態代理在程式規模稍大時就無法勝任。如果介面增加一個方法,除了所有實現類需要實現這個方法外,所有代理類也需要實現此方法,增加了程式碼維護的複雜度。

2、動態代理與靜態代理相比較,最大的好處是介面中宣告的所有方法都被轉移到呼叫處理器一個集中的方法中處理(InvocationHandlerinvoke)。這樣,在介面方法數量比較多的時候,可以進行靈活處理,而不需要像靜態代理那樣每一個方法進行中轉。而且動態代理的應用使類職責更加單一,複用性更強。