基本解释想必点开这篇文章的人对依赖注入和控制反转有一个大概的概念。简单的说:InversionofControl就是DependencyInjection的实现。举个例子,男A想找个女朋友。他可以在网聊、夜店、酒吧等各种地方碰碰运气,花钱花时间。这是找女朋友的一种方式,很多人都这样做。男B想找个女朋友。他年纪大了,没法在这方面花那么多时间和精力,直接相亲了。这是很多大龄青年找女朋友的方式,这就是我今天要说的。简单的解释假设上面的例子是找女朋友,找女朋友是可以的。那么哪个效率更高呢?显然是男B,对于男B来说,他的目标就是找女朋友,靠约会来注入女朋友。这里的相亲可以理解为一种服务,比如交友网站、同事朋友介绍、婚介所等等。对于A男来说,他投入的时间和金钱,可以拥有更高品质的女朋友。或许他很了解这个女朋友,完全可以理解她的脾气,从而控制住她。但是对于男B来说,很难理解和驾驭这个女朋友。因为根本不懂,更别说控制了。也就是说:对这个女朋友的控制能力完全颠倒了。代码解释很多人不理解依赖注入和控制反转,主要是不熟悉适用场景。其实在很多框架中,我们使用的IoC和DI,其实是一回事。它实际上是我们设计模式的一部分。类型:门面模式,又称外观模式。其实我们在理解依赖注入和控制反转的时候,需要有两个概念。我们需要做一件事;该项目提供了一种方法。实际代码classBoy{publicfunctiongetGirlfriend(){$site=newLoveSite();$网站->createGirl();}}classLoveSite{publicfunctioncreateGirl(){}}$boy=newBoy;$boy->getGirlfriend();上面的代码是一个例子。对于Boy来说,LoveSite是他的一个依赖。只有使用了Boy,调用了getGirlfriend方法,才会被它注入,创建一个girl。本例中控制反转的体现是使用一个单独的LoveSite类来实现createGirl的功能,而不是将这个功能的代码写在Boy类中。多于。..
