Tapestry5中的DI

DIDependency Injection缩写,我们翻译为“依赖注入”。简单的说,两个对象A->B(或者组件)依赖关系的建立,最好不要在编程时候确定下来,即不要通过new的方式确定依赖关系,这种方式会使系统失去可扩展性、可复用性等特点。当业务需求变化的时候,A不再依赖B而是依赖CA->C)时候,new方式建立依赖关系的时候就不得不修改A,这是我们在系统设计中最不希望看到的情况。我们需要的是A->B还是A->C的依赖关系不是固定的、死的,而是灵活的、可变的。如果依赖关系能够推迟到运行期,动态的“注入”进来这样的设计才是我们希望的。这样我们就不需要通过修改A来改变依赖关系。DI(“依赖注入”)的设计思想,就是依赖关系推迟到运行期。


1.28

1.28Spring框架实现DI的示意图,在图1.28中我们看到A对象依赖于B对象还是依赖于C对象是通过Spring 框架在运行期由BeanFactory读取applicationContext.xml文件而建立起来的,而不是在编程的时候通过new的方式确定下来的。

DI的思想在OOAD中早就有,Rod JohnsonDI的思想充分地融合到Spring框架设计之中。随着我们学习的深入你会发现Spring框架是多个Bean通过DI方式建立依赖关系,建立复杂的依赖关系网,如图1.29所示。上层Bean依赖下一层的Bean而且依赖关系又可以很容易的切换,而且上层Bean不需要修改任何的代码。


1.29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值