1
2
看来你想知道答案 this question 显然,如果系统像你所说的那样难以设置,那么当你开始维护它时,它就没有多大价值了。这是使用新技术时要牢记的一件重要事情。有时候,因为这个因素,旧的无聊的东西要好得多。
|
2
2
这不是对你问题的直接回答,因为我不熟悉温莎城堡,我也不是国际奥委会专家,但从我对java版Spring的经验来看,我可以告诉你(我在这里谈论的是Spring,所以温莎城堡可能不是这样) 它不仅是依赖注入部分,而且是框架本身:声明式事务管理、内置安全框架、ORM支持、内置MVC web框架、RMI、web服务、电子邮件、AOP等,并且它与IoC进行了良好的集成,对于大多数典型的场景,fraework确实为您做了很多工作。 我认为,带有注释和IDE支持的自动连接(例如IntelliJ IDEA for Spring)可以缓解配置文件问题。
|
3
1
我不一定认为IoC容器在所有情况下都是好的。但这绝对是可能的。如果您使用依赖项注入或服务定位器来处理依赖项,不管怎样,您已经取得了很大的进步,但是IoC容器可以帮助您自动完成工作,为您提供对更高级场景的支持,等等。 不久前,我在一篇博客文章中尝试为自己定义它: 控制反转(IoC)容器是一种非侵入式可配置智能工厂组件 把这个定义分成几个部分,我们得到
如果您将它与依赖注入或服务定位器模式一起正确使用,您确实会得到一些非常方便的好处。您不一定需要使用像Winsor这样的外部容器,但这确实给您带来了一些额外的好处。 您可以编写更少的代码来实例化新对象。如果您想到更复杂的对象层次结构,IoC容器可以帮助您自动创建整个链。这可能非常强大。
更改要注入构造函数的依赖项并不一定意味着需要重构很多代码。 您可以通过一个源获得隧道依赖的各种好处:装饰器、拦截器、代理,以及处理对象。有了Windsor这样的容器,您就可以用极少的耦合完成一些非常简单的困难的事情 您可以利用它的设施概念与例如NHibernate进行平滑集成 |
4
0
我建议你听一下软件工程广播播客的第二集。这是关于依赖注入的一整集。依赖注入是控制框架反转最广为人知的用法。我还建议你听《DotNetRocks》第362集,里面有约翰·科瓦奇。 Here 这是节目的记录。 现在IOC的一个副作用是增加了可测试性。像Castle Windsor这样的IOC容器的使用有助于解耦依赖关系。这种解耦有助于更好的单元测试。 大多数IOC框架还提供了促进面向方面编程的方法。因此,如果您对IOC容器框架感兴趣,它可以帮助您实现这一点。 |