<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    DANCE WITH JAVA

    開發(fā)出高質(zhì)量的系統(tǒng)

    常用鏈接

    統(tǒng)計

    積分與排名

    好友之家

    最新評論

    控制反轉(zhuǎn)的資料的集合及簡單的概念對比

    控制反轉(zhuǎn):
    控制反轉(zhuǎn)的資料的集合
    參考一、
    標(biāo)題:向依賴關(guān)系宣戰(zhàn)----依賴倒置、控制反轉(zhuǎn)和依賴注入辨析
    url:http://www.contextfree.net/wangyw/source/dip_ioc.html
    說明:詳細(xì)分析了幾個概念的不同
    參考二、
    Spring guide
    參考三、
    WebWork In Action IOC一章
    參考四、
    Martin fowler的文章
    http://m.tkk7.com/Files/dreamstone/DependencyInjection.rar
    強烈建議大家看一下第一篇文章和第四篇,作者寫的真的很好

    對比依賴倒置,控制反轉(zhuǎn),依賴注入?
    ---------------------------------------------
    1,依賴倒置:
    先說明什么是"正置"
    正置就是,當(dāng)你設(shè)計一些類庫的時候,考慮到用戶的需要定義一些接口,用戶的應(yīng)用程序依賴這些接口

    對比"正置"和"倒置"
    正置:應(yīng)用依賴接口,接口由類庫設(shè)計者定義
    優(yōu)點:類庫實現(xiàn)上自由度大,實現(xiàn)容易。
    缺點:類庫設(shè)計復(fù)雜,要預(yù)測應(yīng)用的需求,同時有可能不符合應(yīng)用的需求

    倒置:應(yīng)用定義接口,類庫設(shè)計者實現(xiàn)接口,按照接口實現(xiàn)類庫
    優(yōu)點:類庫設(shè)計不再需要預(yù)測,肯定符合應(yīng)用需求
    缺點:類庫有可能難以實現(xiàn)

    簡單來說,正置和倒置的區(qū)別在于,誰來制定標(biāo)準(zhǔn)。現(xiàn)實中因為需求的定義是客戶決定的,所以倒置更
    適合程序的設(shè)計。從需求出發(fā),到底層實現(xiàn)。

    使用目的:便于應(yīng)用按照需求設(shè)計
    關(guān)注點:接口的設(shè)計
    ---------------------------------------------
    2,控制反轉(zhuǎn):
    正常的控制:
     沒有一定的控制流程,下一個流程由上一個流程決定,實現(xiàn)應(yīng)用需要自己控制流程
    控制反轉(zhuǎn)  :
     抽象出固定的流程,實現(xiàn)應(yīng)用就是填充流程中的一個個點。
     所有的框架都是基于控制反轉(zhuǎn)的。Windows GUI開發(fā)也多是這樣。
    目的:高度抽象,設(shè)計框架
    關(guān)注點:流程的設(shè)計
    ---------------------------------------------
    3,依賴注入
    原始的情況:
     應(yīng)用自己new 類,或者使用工廠模式創(chuàng)建類
    依賴注入:
     容器創(chuàng)建類,通過構(gòu)造函數(shù),setter方法,接口等方法,運行時"注入"到應(yīng)用中

    實現(xiàn):
    Spring        setter方法
    webwork IOC  實現(xiàn)接口的方法
    pico   構(gòu)造函數(shù)的方法

    目的:完全分離開發(fā)
    關(guān)注點:構(gòu)造對象

    ---------------------------------------------
    關(guān)系:
    "控制反轉(zhuǎn)"是"依賴倒置"的一種,"依賴注入"是在"控制反轉(zhuǎn)"的基礎(chǔ)上,讓容器來完成"注入"過程。
    ---------------------------------------------
    最需要依賴注入的情況:
    "調(diào)用者"和多個"被調(diào)用者"分別開發(fā),分別打包分發(fā),實施者根據(jù)實際情況決定使用哪個"被調(diào)用者"被使用
    做成可配制的,這種情況是經(jīng)常需要的。這個時候調(diào)用者內(nèi)不能出現(xiàn)這樣的代碼:
    interface inter = new interfaceimplA();類似的語句。因為使用的可能是interfaceimplB
    為了避免這樣語句的出現(xiàn),我們直接使用接口,而對象的構(gòu)造推遲,讓容器根據(jù)實施者的配制來構(gòu)造,并注入
    正確的位置。

     

     

     

     

     

     

     


     

    posted on 2006-12-04 17:57 dreamstone 閱讀(1880) 評論(0)  編輯  收藏 所屬分類: 設(shè)計模式

    主站蜘蛛池模板: 无码欧精品亚洲日韩一区夜夜嗨| 久久91亚洲人成电影网站| 男女男精品网站免费观看| 亚洲国产精品VA在线观看麻豆| 51视频精品全部免费最新| 人人狠狠综合久久亚洲| 久久91亚洲人成电影网站| 毛片免费全部免费观看| 成人免费ā片在线观看| 亚洲午夜一区二区电影院| 亚洲国产精品视频| 67194国产精品免费观看| 特级毛片A级毛片免费播放| 亚洲欧洲在线观看| 国产在线播放免费| 日韩免费人妻AV无码专区蜜桃| 国产精品亚洲а∨无码播放麻豆| 亚洲一区二区成人| 免费在线精品视频| 少妇高潮太爽了在线观看免费| 国产精品永久免费视频| 亚洲人成电影在线观看青青| 国产91精品一区二区麻豆亚洲 | 亚洲人成网站影音先锋播放| 国产成人无码区免费A∨视频网站| 小日子的在线观看免费| 免费人成网站永久| 香蕉大伊亚洲人在线观看| 亚洲妇熟XXXX妇色黄| 免费不卡中文字幕在线| 中文字幕无码免费久久99| 日韩精品无码免费专区午夜不卡| 亚洲av成人一区二区三区观看在线| 久久亚洲精品中文字幕| 日本亚洲国产一区二区三区 | 亚洲黄色网址大全| 国产午夜亚洲精品午夜鲁丝片| 拔擦拔擦8x华人免费久久| AV免费网址在线观看| 五月亭亭免费高清在线| 四虎影视成人永久免费观看视频 |