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

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

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

    posts - 51, comments - 17, trackbacks - 0, articles - 9
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    反向控制? Inversion Of Control : 其實就是把控制權從程序轉到框架或者容器
    依賴注射 Dependency Injection : 就是把配置和程序分離
    個人感覺: 就是通過配置初始化對象,可以方面的加載不同的實現
    ???????????????? 達到通過配置將控制和實現分離的目的

    當前使用IoC概念的lightweight框架
    ????? Avalon, Spring?, PicoContainer
    ??????好像還有Hive之類的,不過沒有接觸過

    這篇文章是講解IoC最經典的文章之一,我打印了一份 還不錯 向 Martin Fowler(馬丁 服了)致敬
    ?????Inversion of Control Containers and the Dependency Injection Pattern

    文章說IoC不是一個新概念了,其實這個概念就是?依賴反轉原則的同義詞 文章見下面的鏈接
    ?????Dependency Inversion Principle (PDF file)
    ????看來萬物相通的道理是正確的 ,不過實現和應用千差萬別

    下面說一下IoC的三種模型
    ????其實 叫Type1 Type2 Type3也沒什么不好,不過就是不大好記憶其真實含義
    ????所以“馬丁服了”都分別給了新的名稱?
    ?
    ????Type1?接口注射 Interface Injection
    ????????在IoC之前這種模式就已經應用了,其實原理就是你實現了某個接口,然后框架會去主動的調用它
    ????????其實自定義的Servlet運行就比較象這種模式
    ????????現在只有?Avalon? 支持這種模式

    ????Type2 設值注射 Setter Injection
    ?????????使用Bean的Setter方面進行初始化
    ???????? 好處之一就是可以很方面的進行junit測試,因為只要隨便換一個配置文件,就可以進行各種配置的測試了(Spring是這樣)
    ????????不好的地方在于Spring要求暴露Setter和Getter方法,一般屬性就沒有辦法隱藏起來
    ????????????馬丁服了? 建議使用 set***Init()的方法使用這個模式,不過我覺得比較麻煩

    ????Type3 構造注射 Construtor Injection
    ????????這個模式來源于 "Good Citizen."?模式(沒有聽過,不過猜想是可以保證城市里面配套設施齊全,呵呵....)
    ????????真正的意思是保證對象在創建的時候就是完整有效的,可以杜絕Setter Injection帶來的暴露屬性問題
    ????????不過這個模式也有一個問題就是類的繼承,會導致一些復雜的設計
    ????????而且一般來說一個類的構造方法可能不僅僅是初始化對象,還包含其它的目的,所以還是有選擇性的使用比較好?

    ????順便說一下DAO模式
    ???????? Sun's Pattern Catalog?以后可以看看,現在還沒有時間看
    J2EE 核心模式

    ???????像普通的Bean一樣定義訪問數據的方法,不過訪問是通過一個抽象的數據訪問對象實現的(abstract Data Access Object)

    Spring 和 PicoContainer的區別
    ????先說一下pico的意思 :兆分之一 意思是這個容器特別特別小,意思它是最小的,呵呵 ,這樣才符合lightWeight容器的概念
    ????有點變態......

    ????言歸正傳
    ????Spring可以使用xml配置綁定也可以直接通過java訪問
    ????picoContainer則只可以通過java綁定( PicoExtras 項目提供了pico綁定xml的支持)
    ????不過現在N多框架和開源項目都使用Xml作配置,維護起來也很頭疼,雖然叫做good taste ,但也好不到哪去
    ????pico相對sring更為lightweight,但對其他項目的支持比較弱,比如hibernate
    ????而且spring不僅僅提供了IoC,更提供了Aop的支持
    ????不過有關Aop的支持,可以考慮使用 AspectWerkz or AspectJ.?
    ????這兩個都支持Constructor Injection,但只有Spring支持Setter Injection,所以選擇后者只有Spring這個唯一的選擇(翻譯的比較拗口)

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


    網站導航:
     
    主站蜘蛛池模板: 精品久久香蕉国产线看观看亚洲| 免费看片免费播放| 国产成人亚洲综合色影视| 羞羞视频免费网站在线看| 亚洲无码黄色网址| 韩日电影在线播放免费版| 国产亚洲婷婷香蕉久久精品| 中文字幕久精品免费视频| 久久久久久亚洲av成人无码国产| 四虎成人精品永久免费AV| 亚洲综合激情六月婷婷在线观看| 午夜性色一区二区三区免费不卡视频| 亚洲一级在线观看| 成人永久免费福利视频网站| 羞羞视频免费网站日本| 国产亚洲av片在线观看播放| 37pao成人国产永久免费视频| 97久久国产亚洲精品超碰热| 国产hs免费高清在线观看| a毛片全部播放免费视频完整18| 亚洲图片在线观看| 毛片免费在线观看网站| 国产精品亚洲小说专区| 亚洲中久无码不卡永久在线观看| 无码av免费网站| 亚洲乱码国产乱码精华| 亚洲中文久久精品无码| 无码免费午夜福利片在线| 无码一区二区三区亚洲人妻| 久久综合图区亚洲综合图区| 国内自产少妇自拍区免费| 久久国产乱子伦精品免费午夜| 亚洲精品在线播放| 亚洲一级Av无码毛片久久精品| 3d动漫精品啪啪一区二区免费| 亚洲Av永久无码精品黑人| 精品国产亚洲一区二区三区| 午夜无遮挡羞羞漫画免费| 在线观看免费无码专区| 亚洲av无一区二区三区| 亚洲ⅴ国产v天堂a无码二区|