青浦赵巷网站建设,微信小程序模版,教育机构排名全国十大教育机构排名,妇联网站建设方案本问题已经有最佳答案#xff0c;请猛点这里访问。Possible Duplicate:What is Inversion of Control?我知道依赖注入(DI)是什么(我想#xff01;).基本上是满足对象可能具有的依赖关系。我试着想想当使用DI作为面向服务的时候我写的代码#xff0c;我把我的代码定义为使用…本问题已经有最佳答案请猛点这里访问。Possible Duplicate:What is Inversion of Control?我知道依赖注入(DI)是什么(我想).基本上是满足对象可能具有的依赖关系。我试着想想当使用DI作为面向服务的时候我写的代码我把我的代码定义为使用其他服务。然而我现在想知道在使用IOC时我们到底是在改变对什么的控制。这是一个相当模糊的术语可能意味着一些事情。但是我认为创建由IOC框架处理的对象(并因此满足使用DI的依赖性)是有责任的。应用程序仍然有责任要求它使用的对象(即服务)区别在于它不知道(或不关心)如何创建它。那么为什么服务定位器被认为是反模式的如果它所做的一切都是请求服务我说得对吗或者是其他什么意思。另外我是否正确地将DI和IOC的职责分开了如果我有一个IOC框架就不能在没有DI框架的情况下运行。或者DI只是IOC框架的一个特性看什么是控制反转另请参见为什么我需要一个IOC容器而不是直接的DI代码我认为你提供的第一个链接回答问题的方式不对依赖注入通常意味着将依赖对象作为参数传递给方法而不是让方法创建依赖对象。它在实践中的含义是方法不直接依赖于特定的实现任何满足需求的实现都可以作为参数传递。控制反转只认识到依赖关系是反转的。A不是通过创建、实现或直接调用B来依赖B而是接收B作为参数并且不再以任何方式对B负责。将参数类型实现为接口简化了过程并将其概括但这并不是严格必要的。控制反转是一种普遍的模式。依赖注入就是这种模式的一种用法。有关更多信息本文由MartinFowler撰写特别是标题为控制反转的部分。现在很多人都避免使用DI的控制反转一词因为反转与人们在依赖注入变得普遍之前所做的事情相比较。如果你现在已经习惯了依赖注入或者是从一开始就有足够幸运地这么想的人之一那么试图弄清楚被反转的是什么只是令人困惑。啊哈-事实上现在更有意义了。这是一个相对的术语一旦你改变了使用依赖注入的心态那么反转就不再意味着什么了。在我开始使用Castle Windsor之前我已经使用依赖注入很长一段时间了。当时它只是为了使编写单元测试更容易。控制反转基本上意味着应用程序代码不关心它需要的部分来自何处。您可以通过各种类型的依赖注入来实现IOC。与Java世界中的情况相反包装器可能通过JNDI按名称请求资源。在这种情况下代码要求它的需求而不是提供它。您说应用程序仍然有责任要求它使用的对象(即服务)区别在于它不知道(或不关心)如何创建它。我不认为这是真的组件不要求其他组件。依赖关系是从更高的层次注入的这是一种不同的语义。这就是国际奥委会。