ioc依赖注入的原则
一、.依赖就是有联系,有地方使用到他就是有依赖它,一个系统不可能完全避免依赖。如果你的一个类或者模块在项目中没有用到它,那么你可以从项目中删掉它,因为没有一个地方可以依赖它。
二、依赖倒置
需求增加了,需要不同的播放器,播放不同的文件,我们需要抽象出来,减少耦合。
耦合关系就是依赖关系,如果依赖关系太复杂,牵一发动全身,很难维护,依赖关系少,耦合关系就降低,系统就越稳定,所以我们要减少依赖关系。
上层模块不能依赖于下层模块,它们共同依赖于一个抽象。
抽象不能依赖于具象,具象依赖于抽象。
1.上层是使用者,下层是被使用者,这就导致了结果是上层依赖于下层,下层变动了,自然就会影响到了上层,导致系统不稳定,牵一发动全身。减少依赖,就是上层下层都去依赖另一个抽象,这个抽象比较稳定,整个就来说比较稳定。
2.面向对象编程时面向抽象或者面向接口编程时,抽象一般比较稳定,实现抽象的具体肯定要依赖抽象,抽象不应该依赖具体,应该依赖抽象
三、控制反转
现实生活中,是具体播放器和具体的媒体文件没有关系,你给它一个mp3文件他可以播放,给它一个mp4文件它可以播放,你删掉文件,播放器照样在,具体什么播放器什么文件,控制权全部是我们自己用。
我们可以通过反射来创建,把具体的文件写在配置文件里,这时客户端的代码不用变了只需要改变配置文件就好,稳定性又有了提高。
四、依赖注入
上面说的控制反转,是一个思想概念,但是也要具体实现,上面的配置文件也是一种执行方式。依赖具体的注入方式。