<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://www.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è)計模式

    主站蜘蛛池模板: 老子影院午夜伦不卡亚洲| 日韩精品无码一区二区三区免费 | 亚洲午夜福利在线视频| 四虎影视永久免费观看| 大地资源在线资源免费观看| 亚洲沟沟美女亚洲沟沟| 免费一级国产生活片| 中文字幕在线免费播放| 亚洲一区二区三区免费在线观看| 免费国产成人高清视频网站| 国产成人精品免费大全| 亚洲人成毛片线播放| 国产乱人免费视频| 无码人妻久久一区二区三区免费| 国产成人亚洲综合一区| 黑人精品videos亚洲人| 免费鲁丝片一级观看| 久久久久免费精品国产小说| 无码色偷偷亚洲国内自拍| 亚洲黑人嫩小videos| 久久久无码精品亚洲日韩软件| 皇色在线视频免费网站| 成人性生交大片免费看中文| 亚洲精品女同中文字幕| 亚洲视频在线观看网址| 国产亚洲视频在线播放| 国产麻豆免费观看91| 久久w5ww成w人免费| 亚洲一区二区三区免费| 亚洲JIZZJIZZ妇女| 亚洲av无码专区在线| 久久亚洲精品无码| 红杏亚洲影院一区二区三区| 日韩免费观看视频| 久久久久久久91精品免费观看| 免费福利电影在线观看| 一级毛片视频免费观看| 日本系列1页亚洲系列| 99久久国产亚洲综合精品| 91在线精品亚洲一区二区| 亚洲av伊人久久综合密臀性色|