WEB开发网
开发学院网络安全安全技术 对依赖注入技术的初学指导 阅读

对依赖注入技术的初学指导

 2008-09-20 13:26:20 来源:WEB开发网   
核心提示: 举例来说,J2EE中使用了JNDI来标准化找寻对象引用的机制,对依赖注入技术的初学指导(4),这样的实施在一些简单的,没有JNDI的环境中就会迫使客户端的代码作出调整,和TripPlanner等接口的实施类的实例化,并解决好它们之间的相互依赖关系,DI的使用要求我们在写软件时,把依赖性搞清

举例来说,J2EE中使用了JNDI来标准化找寻对象引用的机制。这样的实施在一些简单的,没有JNDI的环境中就会迫使客户端的代码作出调整。

DI的使用要求我们在写软件时,把依赖性搞清楚,让DI框架里的容器替我们去做那些将服务端部件实例化、初始化、次序化、然后提供用户端需要的服务端的引用的复杂工作。

DI框架举例

现在有不少对开发人员有帮助的框架。我发现确实有用的有:

Spring框架:一个相当大的框架,提供包括DI在内的很多功能

Pico框架:一个很小,但是集中于DI容器的框架

HiveMind:另一个DI容器的框架

XWork:一个非常有效地利用DI的,主要基于命令模式的框架。虽然它是独立存在的,但它通常和Webwork结合起来用

在下面的章节里,我们将取一种情境,先不用DI来实施一次,再用上述提到的每一种DI框架来实施。这样,我们就能体会到如何使用这些框架。这里,我尽量少用代码,而且这些代码的主要重心也在DI相关的功能上。

实施情境

随附的源代码基本上实施了我之前提到的那个旅行订票情境。总的流程图(从每一个"*Harness"类里的主方法开始)如下:

Harness类被实例化,其中的runHarness()方法被调用。

runHarness()方法(在AbstractHarness类中)首先激活configure()方法。configure()方法再来对DI容器进行初始化,并注册它的实施类。

runHarness()方法随后激活getPlanner()方法。这通常会激活DI框架底层的Lookup方法。目前暂不明瞭的是,这个Lookup方法是否会引发DI容器对AirlineAgency,CabAgency,和TripPlanner等接口的实施类的实例化,并解决好它们之间的相互依赖关系。

runHarness()方法随后在调用planTrip()方法来实际完成订票和计划taxi接人的时间问题。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:依赖 注入 技术

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接