..


赞助商链接

IoC和DI(依赖注入和控制反转)

'S 控制 (IOC) 反转是一个框架,它通过移动应用程序的流量控制框架本身的典型特征。

让我们以一个例子来说明这个概念:如果你创建一个GUI通过API 摆动 ,程序员只需要实现由用户触发的事件,比如按下一个按钮或输入文字,处理程序。 框架是留给应用程序流控制,如关闭和打开窗户。

这种行为被称为IoC的, 因为控制是由开发商提出的框架。

一旦国际奥委会清楚,我们看到它是如何在Spring中使用。
所有的应用程序的对象包括达到预定的目标,必须相互合作,必然形成依赖。 通常情况下解决这些依赖关系的代码,它是为配置(通常是制造商)合适。 假设我们要实现一个音像店管理类:






 it.mrwebmaster包;









进口java.util.ArrayList;







进口的java.util.List;









 {公共类VideoManager





  



私人DvdService dvdService;





  



公共VideoManager(){



    



超级();



    



 / **



     



 *配置和依赖的决议



     



 * /



    



 this.dvdService DvdServiceImpl =新();



  



 }





  



 <DVD> getAvalaibleDvdList公开名单(){



    



 / **



     



 *检索DVD列表



     



 * /



    



名单<DVD> dvdList dvdService.getDvdList =();





    



 / **



     



 *循环通过DVD来查找列表

 

     



 *这些可用



     



 * /



    



目录=新的ArrayList <DVD> availabeDvdList <DVD>();





    



为(DVD DVD:dvdList){



      



如果(dvd.isDisponibile()){



        



 availabeDvdList.add(DVD);



      



 }



    



 }





    



 availabeDvdList回报;



  



 }

	





 }



在这个例子中类VideoManager具有收回非出租DVD列表的任务。 这份名单是检索使用的服务(DvdService)检索所有的DVD名单,名单上的循环是DVD获得。 类VideoManager,因此,具有对对象DvdService,这是在构造解析的依赖。

Diagramma Dipendenze

如果我们没有使用Spring,我们应该不必担心解决在类构造dipendeza VideoManager,因为依赖将由弹簧解决。
在春天,然后,国际奥委会是用来反转在配置依赖关系的控制。 由于这个原因,它是由Martin Fowler的创造,在他著名的文章中,长期依赖关系注入 (DI),这是有时被用作同义词IoC的ID不正确。
对DI的基本概念是有一个单独的对象做依赖解析和初始化。

下面的汇编类,有任务来初始化类DvdService:

Diagramma Assembler

有三种类型的依赖关系注入:

  • 接口注入
  • setter注入
  • 构造器注入
在Spring中,正如我们将在后面看到,只有实现构造和setter注入,但它也可以通过初始化,并创建对象工厂和工厂方法的对象。

春天的Java指南
电子学习
Linux操作系统(课程) Linux操作系统(课程)
完整指南开源系统。 从49€。
PHP(课程) PHP(课程)
全部课程用于创建动态Web站点。 从49€。
Ruby和Ruby on Rails的(课程) Ruby和Ruby on Rails的(课程)
创建Ruby和RoR的软件和Web应用程序。 从39€。
赞助商链接