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

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

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

    DANCE WITH JAVA

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

    常用鏈接

    統(tǒng)計(jì)

    積分與排名

    好友之家

    最新評(píng)論

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

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

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

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

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

    簡(jiǎn)單來(lái)說(shuō),正置和倒置的區(qū)別在于,誰(shuí)來(lái)制定標(biāo)準(zhǔn)。現(xiàn)實(shí)中因?yàn)樾枨蟮亩x是客戶(hù)決定的,所以倒置更
    適合程序的設(shè)計(jì)。從需求出發(fā),到底層實(shí)現(xiàn)。

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

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

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

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

     

     

     

     

     

     

     


     

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

    主站蜘蛛池模板: 久久久久亚洲精品成人网小说| 91青青青国产在观免费影视| 日韩一品在线播放视频一品免费| 亚洲精品美女在线观看| 免费视频成人片在线观看| 亚洲第一区香蕉_国产a| 中文字幕久精品免费视频| 亚洲AV中文无码字幕色三| 免费无码一区二区三区| 亚洲乱码中文字幕小综合| 久久精品无码一区二区三区免费| 亚洲一卡一卡二新区无人区| 蜜臀91精品国产免费观看| 免费在线观看自拍性爱视频| 美腿丝袜亚洲综合| 毛片在线全部免费观看| 亚洲狠狠狠一区二区三区| 午夜色a大片在线观看免费| 免费看一级一级人妻片| 亚洲国产一成人久久精品| 69免费视频大片| 亚洲欧美综合精品成人导航| 亚洲精品无码AV中文字幕电影网站| 国产在线国偷精品免费看| 亚洲黄色片免费看| 香蕉高清免费永久在线视频 | 美女被免费视频网站a| 久久久久亚洲AV综合波多野结衣 | 久久国产亚洲精品| 亚洲男人的天堂在线va拉文| 久久九九AV免费精品| 亚洲一区二区三区在线观看网站 | 亚洲成a人片在线观看无码专区| 国产免费一区二区三区| 欧洲亚洲国产精华液| 亚洲大尺度无码无码专区| 成人性生免费视频| a级特黄毛片免费观看| 亚洲人av高清无码| 亚洲AV无码久久久久网站蜜桃 | 丰满少妇作爱视频免费观看|