@wenzhoou 解耦是一个方面,控制反转( IOC )就是不要让用户代码自己去注入依赖。你说的替代 new 的说法不对,不用容器也不一定需要每次都 new,工厂+单例不就行了;况且容器也可以每次都 new ( prototype 模式),只不过大多数情况下我们都用容器的 singleton 模式而已
jimrok
2018-10-10 11:48:53 +08:00
@wenzhoou @yinaqu 很同意你的说法,就是不要自己去管理依赖的对象,而是让容器去管理,这样容器可以在运行时给你把手枪换成火炮。如果你自己 new 一个手枪,你就永远依赖这个手枪。不过要注意,不要什么代码都弄成 IOC 管理,非常难理解,因为不知道运行期被注入的是什么对象。尽量模块化依赖,模块内部不要再搞 IOC。