天天看點

spring中的設計模式(一)

在項目開發中,由A方先提供API接口,B方調用

此時A方将自己的實作類實作API接口

B方同時也編寫實作類實作API接口,但不需要真的實作接口中的邏輯,隻需調用父接口中的方法即可

圖:

spring中的設計模式(一)

這時暴露出來的隻有接口API和代理類B,B提供了其他對象調用A的代理,B裡面具有對實作類A的方法的控制權,可以控制他什麼時候執行或者是不執行

當B隻是為了給A方法的實作增加一些功能,并沒有權利決定A的方法是否執行時,此時設計模式變為裝飾模式

代理模式和裝飾模式的差別在于,代理模式:代理類B中的實作方法可以控制有分支不調用B的方法,裝飾模式:裝飾類B中必須會調用A的方法,但可以在A方法的基礎上增加功能