什么是IoC容器?
什么是IoC/DI框架?
为什么我们需要一个IoC/DI框架?
IoC/DI和AOP之间有什么关系吗?
关于IoC和AOP,Spring.net/ninject是什么?
发布于 2009-06-03 18:12:09
JMSA,
James Kovacs写了一篇很棒的文章,涵盖了你的许多问题,我建议你读一读Here
Spring.Net,Ninject,Unity,Castle Windsor,Autofac都是IOC容器,可以通过不同的方式进行配置,它们中的许多都支持面向方面编程。
IOC/DI的框架很有用,因为它们提供了标准的机制,例如,如果你正在招聘一个新的开发人员,说起来容易得多,我们使用这个框架,并将教程/帮助指南的链接传递给他们。同时,这些框架在大型社区/公司中进行了试验和测试。
如果你的任何问题在阅读完文章和上面的答案后仍然没有得到回答,请让我知道,我会尽我最大的努力提供进一步的帮助。
发布于 2011-04-22 18:14:37
从语义学的角度来看...
依赖注入本身意味着依赖,即构造/使用所需的东西(应用程序的“核心关注点”)。例如,一辆汽车不是没有引擎的汽车。
方面被描述为横切应用程序的核心关注点。这意味着既独立于核心关注点,又对核心关注点不重要(您可以将它们视为“有好处的人”)。既然应用程序可以在没有方面的情况下运行,那么它们真的是依赖关系吗?例如,即使没有固定器,一辆汽车仍然是一辆汽车。
(当然,这是从理论角度来看的。在现实世界中,安全等问题通常与核心关注点本身一样对适销对路的产品的存在至关重要。)
因此,虽然在实践中DI可以用于实现方面,但我不会将该过程称为真正的DI。这来自一个专门使用构造函数注入的人。
发布于 2009-06-03 18:36:48
Martin Fowler有一篇很好的文章here,介绍了控制反转和依赖注入的含义。
在here中详细描述了Spring.NET的用法。我更熟悉基于Java的Spring版本,所以我不能绝对肯定地说Spring.NET目前只支持基于代理的面向方面编程。
也就是说,要通知的类必须实现一个接口。Spring将创建一个动态代理来实现此接口并委托给原始目标实例。
尽管它确实声明了:
在未来的版本中,我们将使用继承实现代理,这将允许您在没有接口的情况下代理类,并将删除一些剩余的原始引用问题,这些问题无法使用基于组合的代理来解决。
https://stackoverflow.com/questions/946110
复制相似问题