Dependency injection (DI) 中文名叫依赖注入。它的目的是为了允许在运行时改变一个接口的实现,这样就可以松耦合。同时,可以mock测试(这步还不知道怎么做)。
用一个例子来说明吧
在这个例子里面,首先,DamselRescuingKnight只能使用一种Quest,就是RescueDamselQuest。而且不能被测试(不知道为什么);
在这个例子,BraveKnight用得是传进来的quest,而且是个接口,可以接收任意实现,在运行时也可以改变实现。而且方便mock测试(不知道为什么)