九九百科網

位置:首頁 > 經驗 > 

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

經驗1.61W

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

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

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

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

標籤:代理 靜態