Java实战应用50篇(二)-SSM框架中的设计模式:动态代理
前言
動態(tài)代理和責任鏈無論在Spring還是MyBatis中都有重要的應用,代理模式的意義在于生成一個占位(又稱代理對象),來代理真實對象(又稱目標對象),從而控制真實對象的訪問。
先來談談什么是代理模式。
假設這樣一個場景,你的公司是一家軟件公司,你是一位軟件工程師。客戶帶著需求去找公司顯然不會直接和你談,而是去找商務談,此時客戶會認為商務就代表公司。
讓我們用一張圖來表示代理模式的含義,如圖1所示。
圖1 代理模式示意圖
顯然客戶是通過商務去訪問軟件工程師的,那么商務(代理對象)的意義是什么呢?
商務可以進行談判,比如項目啟動前的商務談判,軟件的價格、交付、進度的時間節(jié)點等,或者項目完成后的商務追討應收賬款等。商務也有可能在開發(fā)軟件之前談判失敗,此時商務就會根據(jù)公司規(guī)則去結(jié)束和客戶的合作關系,這些都不用軟件工程師來處理。
因此,代理的作用就是,在真實對象訪問之前或者之后加入對應的邏輯,或者根據(jù)其他規(guī)則控制是否使用真實對象,顯然在這個例子里商務控制了客戶對軟件工程師的訪問。
經(jīng)過上面的論述,我們知道商務和軟件工程師是代理和被代理的關系,客戶是通過商務去訪問軟件工程師的。此時客戶就是程序中的調(diào)用者,商務就是代理對象,軟件工程師就是真實對象。
我們需要在調(diào)用者調(diào)用對象之前產(chǎn)生一個代理對象,
總結(jié)
以上是生活随笔為你收集整理的Java实战应用50篇(二)-SSM框架中的设计模式:动态代理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB在人工智能中的应用案例:以M
- 下一篇: Java高阶部分知识点汇总(一)- 成员