当前位置:  开发笔记 > 运维 > 正文

使用IOC容器有哪些优缺点?

如何解决《使用IOC容器有哪些优缺点?》经验,为你挑选了3个好方法。

使用IOC容器会降低应用程序的速度,因为大多数都使用了引擎盖下的反射.它们还会使您的代码更难理解(?).光明的一面; 它们可以帮助您创建更松散耦合的应用程序,并使单元测试更容易.使用/不使用IOC容器还有其他优缺点吗?



1> Jon Skeet..:

如果您以简单的方式使用IOC容器,则仅在启动时使用反射 - 应用程序连接起来开始,然后它正常运行而无需容器的任何干预.当然,如果您在开始运行后使用IOC来解决依赖关系,那可能会略有不同 - 尽管我仍然期望它可以懒惰地解析并缓存,除非您已将其配置为每个都创建新实例时间.

至于使代码更难理解 - 恰恰相反!通过明确声明依赖关系,可以更容易地理解每个组件,并且配置文件清楚地表明整个应用程序如何挂起.


使用IoC容器后,代码更容易理解.但是,在使用它之前,一些开发人员很难理解他们为什么需要它.它解决的复杂性问题通常不存在于玩具应用中.

2> Sciolist..:

好吧,我想我经历的一个问题是,一些开发人员似乎无法掌握IoC.我们有几个人除了他们不理解他们之外没有任何理由反对它.(并不是说这是反对某事的坏理由,完全没有.)

它确实增加了一些似乎总是让某人或其他人感到困惑的抽象,但我认为在大多数情况下,优点远远超过缺点.



3> Ian Ringrose..:

我认为,如果您对如何使用IOC有专业的理解并且倾向于编写好的代码,那么可以说是公平的,那么IOC将使您的代码更容易理解除了最小的系统.

但是,如果您在大多数类/方法非常庞大并且重构概念尚未成熟的地方工作,那么尝试使用IOC可能只是为了让软件更难理解.国际奥委会也必须由项目所有人参与,因此可能需要考虑.

我认为国际奥委会是锦上添花; 我喜欢结冰,但只喜欢美味的蛋糕.如果蛋糕不好开始,先把蛋糕整理出来.

至于使用IOC的性能开销,在大多数情况下我不认为这是一个问题.开销不需要很大,并且考虑到当今CPU的速度,大多数运行时间可能仍然是数据访问.如果国际奥委会证明减缓对代码我想看看添加返回对象的一些缓存,或移除国际奥委会给定的位刚刚从代码位.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有