在面向对象编程(OOP)软件设计中,依赖注入(DI)是提供给定代码片段所需资源的过程。所需资源(通常是应用程序本身的一个组件)称为依赖项。 下载这个免费指南
当客户端(请求某些东西的软件组件)需要其他组件才能成功实现其预期目的时,客户端必须知道需要哪些资源,在何处找到它们以及如何与它们通信。构造代码的一种方法是嵌入用于在每个客户端中定位资源的逻辑。然而,这种紧密耦合的方法可能会有问题,因为如果资源应该改变位置,则必须重写嵌入的代码。
构建代码的另一种方法是让客户端声明它们对资源的依赖性,并允许外部代码承担实例化和配置软件组件及其依赖关系的责任。外部代码被解耦,可以手动编码或使用称为DI容器或DI 框架的特殊软件模块实现。本质上,容器/框架提供了客户端可能需要的依赖关系的映射以及用于向映射添加新依赖关系的逻辑。
在处理大型应用程序时,依赖注入非常有用,因为它可以使各种代码模块免于实例化对资源的引用,并允许轻松地交换依赖项(甚至是模拟依赖项),这可以使单元测试更容易。通过允许框架进行资源创建,配置数据是集中的,更新只发生在一个地方。依赖注入的另一个好处是可以通过源代码之外的XML文件自定义注入的资源。这允许应用更改而无需重新编译整个代码库。
但是,依赖注入有时会使故障排除变得困难,因为大量代码被推送到一个未知位置,该位置创建资源并在应用程序中根据需要分发它们。当所有行为不端的对象都埋没在复杂的第三方框架中时,调试代码会非常令人沮丧和耗时。
817
186
上一篇:依赖性检查
下一篇:如何在现有应用程序中实现依赖注入