先看一下这个大佬的博客
https://www.cnblogs.com/fuchongjundream/p/3873073.html
我只是画个图
1.依赖
这个很不友好,要换别的Player或者MeidaFile要动Operation
2.依赖倒置
这个好很多了,加了两个接口,要换别的Player或者MeidaFile,不用动Operation
3.ioc(控制反转)(控制权是我们用户自己,如果是spring的ioc,控制权就是spring)
这个用了最好了,要换Player或者MeidaFile什么代码都不需要改,只要在配置文件改一下
4.DI(依赖注入) 是 IoC (控制反转)的一种实现方式:ioc容器在运行期间,动态地将某种依赖关系注入到对象之中。
就是在外面创建好对象,注入给OperationMain,还有比如OperationMain把MeidaFile注入给Player。