当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

掌握反转(IoC)与依靠注入(DI)[Java编程]

赞助商链接



  本文“掌握反转(IoC)与依靠注入(DI)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1.掌握反转(Inversion of Control)与依靠注入(Dependency Injection)

掌握反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理.所谓的“掌握反转”概念就是对组件对象掌握权的转移,从程序代码本身转移到了外部容器.

IoC是一个很大的概念,可以用差别的方法来实现.其主要实现方法有两种:<1>依靠查找(Dependency Lookup):容器供应回调接口和上下文环境给组件.EJB和Apache Avalon都利用这种方法.<2>依靠注入(Dependency Injection):组件不做定位查询,只供应普通的Java办法让容器去决意依靠关系.后者是时下最风行的IoC范例,其又有接口注入(Interface Injection),设值注入(Setter Injection)和构造子注入(Constructor Injection)三种方法.

图1 掌握反转概念构造

依靠注入之所以更风行是因为它是一种更可取的方法:让容器全权负责依靠查询,受管组件只需求表露JavaBean的setter办法大概带参数的构造子大概接口,使容器可以在初始化时组装对象的依靠关系.其与依靠查找方法相比,主要上风为:<1>查找定位操作与利用代码完好无关.<2>不依靠于容器的API,可以很简单地在任何容器以外利用利用对象.<3>不需求特别的接口,绝大大都对象可以做到完好没必要依靠容器.

2.好莱坞原则

IoC表现了好莱坞原则,即“不要打电话过来,我们会打给你”.第一次碰到好莱坞原则是在理解模板办法(Template Mathod)情势的时刻,模板办法情势的核心是,基类(抽象类)定义了算法的骨架,而将一些步骤耽误到子类中.

图2 模板办法情势类图

目前来考虑IoC的实现机制,组件定义了整个流程框架,而此中的一些业务逻辑的实现要借助于其他业务对象的加入,它们可以通过两种方法参与到业务流程中,一种是依靠查找(Dependency Lookup),近似与JDNI的实现,通过JNDI来找到呼应的业务对象(代码1),另一种是依靠注入,通过IoC容器将业务对象注入到组件中.

3. 依靠查找(Dependency Lookup)

下面代码展示了基于JNDI实现的依靠查找机制.

public class MyBusniessObject{
  private DataSource ds;
  private MyCollaborator myCollaborator;
  public MyBusnissObject(){
Context ctx = null;
try{
   ctx = new InitialContext();
   ds = (DataSource) ctx.lookup(“java:comp/env/dataSourceName”);
   myCollaborator =
(MyCollaborator) ctx.lookup(“java:comp/env/myCollaboratorName”);
   }……

代码1依靠查找(Dependency Lookup)代码实现

依靠查找的主要问题是,这段代码必须依靠于JNDI环境,所以它不能在利用服务器之外运行,并且假如要用别的方法代替JNDI来查找资源和合作对象,就必须把JNDI代码抽出来重构到一个战略办法中去.


  以上是“掌握反转(IoC)与依靠注入(DI)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 掌握反转(IoC)与依靠注入(DI)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .