Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dependency injection 什么是“手动依赖注入”?_Dependency Injection - Fatal编程技术网

Dependency injection 什么是“手动依赖注入”?

Dependency injection 什么是“手动依赖注入”?,dependency-injection,Dependency Injection,我经常在国际奥委会框架中读到这句话 在他们的示例中,他们基本上有一个代码序列,在其中他们创建一组对象,连接它们,等等,然后做一些事情 我不明白的是,当您遵循面向对象编程的原则时,为什么需要这个序列?简单地说,依赖注入是一个概念。 经典的OOP对象解析它们自己的依赖关系并对它们进行管理。因此,一个经典的课程需要带来关于它的环境的知识,而这对于它的真正原因是不必要的。依赖项注入传递了创建和链接到独立实例的责任,如果存在大量的类,那么这样可以更容易地维护代码 但你是对的——最后,如果有什么东西需要实现

我经常在国际奥委会框架中读到这句话

在他们的示例中,他们基本上有一个代码序列,在其中他们创建一组对象,连接它们,等等,然后做一些事情


我不明白的是,当您遵循面向对象编程的原则时,为什么需要这个序列?

简单地说,依赖注入是一个概念。 经典的OOP对象解析它们自己的依赖关系并对它们进行管理。因此,一个经典的课程需要带来关于它的环境的知识,而这对于它的真正原因是不必要的。依赖项注入传递了创建和链接到独立实例的责任,如果存在大量的类,那么这样可以更容易地维护代码


但你是对的——最后,如果有什么东西需要实现,并且在类中创建对象所需的时间已经结束了——遵循面向对象编程的原则确定了这项工作,并提供实例来管理这项工作。

我认为经典类遵循单一责任原则?它可以,但这里有一个不同的原理:DIP。类可以遵循SRP,同时仍然将自身与其依赖项紧密耦合。SRP影响一个班级可能有哪些合作者;DIP会影响班级获得这些合作者的方式。依赖项注入只是一种跟踪DIP时使用的技术。