posts - 38, comments - 9, trackbacks - 0, articles - 1

          再讀《Ioc容器和Dependency Injection模式》

          Posted on 2005-12-06 15:56 大阿福 閱讀(1013) 評論(0)  編輯  收藏 所屬分類: Java
          每次讀《Ioc容器和Dependency  Injection模式》都會有新的體會,正好印證了“書讀百遍,其義自現”這句古話。
          就跟其他的設計模式乃至其他的軟件開發技術一樣,DIP也有自身適合的應用場景:如何在組裝不同的軟件組件時進行最大程度的解耦,達到更好的接口與實現的分離。這種不同的軟件組件更側重指在大型的軟件系統中,由不同的人開發出來等待組合的情況。所以對于簡單較小的桌面應用程序(僅僅是個人使用,或是沒有靈活的架構需求),則是無需考慮過多的模式問題。
          控制反轉,我在最初接觸到這個概念的時候一直沒能明白,再讀文章給了我進一步領會的機會。原來
          在我們一般進行代碼設計的時候,在某個對象依賴另一個時,一般會直接new一個出來,這本身就是一個強耦合的典型,在需要靈活的程序結構和運行時才決定實現類的需求下,這樣的實現無疑增大了維護的難度和浪費??刂品崔D則是由第三方(Ioc容器)來提供被依賴對象,依賴者僅需提供所需接口及服務聲明即可。
          關于解耦,正如文中所提,ServiceLocator也是一種良好的模式,MF在文中對這兩種模式做了較為詳盡的比較,甚至更傾向于SL模式提供的更為直觀的接口的方式,但是如果SL的設計本身也是個問題,設計的優劣,將影響解耦程度的高低,文中給出了為定位器提供分離的接口和動態服務定位器兩種方案。
          現在較為流行的Ioc容易有PicoContainer和Spring,尤其是后者,現在可以說是如日中天,可惜手頭的工作一直未能采用這些先進的框架和容器技術,希望能在E5重構中實踐。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 浙江省| 蒙自县| 康乐县| 包头市| 杭州市| 左贡县| 扎赉特旗| 兖州市| 本溪市| 洪泽县| 林州市| 德阳市| 新乡县| 万载县| 宿迁市| 淮北市| 凤阳县| 清流县| 襄垣县| 张家口市| 桓仁| 桂平市| 望江县| 成安县| 泸水县| 屏南县| 琼结县| 栖霞市| 金秀| 谷城县| 高陵县| 芮城县| 惠州市| 米林县| 金华市| 菏泽市| 永德县| 葵青区| 西吉县| 苏尼特左旗| 伽师县|