在控制反转中,控制在哪里被反转

Bra*_*ild 4 asp.net-mvc design-patterns inversion-of-control

我花了很多时间来理解ioc.我永远不明白在这种模式中如何完全控制.即使我对反转的确切含义感到困惑.在正常的英语 - 倒置是一些像倒车,比如倒杯.

如果我将依赖注入视为Ioc.我想知道这里的控制器究竟在哪里.我在DI中理解,依赖是在构造函数,setter ........的帮助下从外部实体插入的.

但是我从来都不明白控制在这里倒置了......

任何帮助赞赏.

jga*_*fin 5

老式:

Class car
{
  Engine _engine;
   Public Car()
   {
       _engine = new V6();
   }
}
Run Code Online (Sandbox Code Playgroud)

倒:

Class car
{
   Engine _engine;
    Public Car(Engine engine)
    {
        _engine = engine;
     }
}

var car = new Car(new V4());
Run Code Online (Sandbox Code Playgroud)

呼叫者具有控制而不是汽车类