IOC有三个好处: 一个是可以把一些参数的配置通过一个统一的IOC容器来进行管理(你的开发团队应该不会在一个项目中使用两个IOC容器的),比如说你的一个发送邮件服务对象所需要的SMTP服务器,用户名,密码之类的参数.优点是不用在类里进行硬编码,不会导致团队中每个开发人员都有自己的配置文件,还有一个自己的配置文件读取帮助类.一个项目中,执行相同功能的类有多个存在有何意义? 第二个是在接口编程中,IOC帮你消除了InterfaceA a = new AImpl();这样的代码.也许你会将所有服务对象的实例化操作都放在一个工具类(例如ServiceFactory)中,然后通过这个工具类来进行服务对象的获取.但当你替换实现时还是需要改动你的代码.假设你的一个模块在另一个项目中进行了复用,但复用的前提是你需要修改AImpl,这时候你愿意保存两份AImpl代码,针对不同的项目修改不同的AImpl,还是给另一个应用开发一个AImpl2,然后修改你的ServiceFactory,保存两份ServiceFactory代码?我想你会选择使用IOC的配置文件方式的. 第三个是方便测试,这就不多说了
|
|