我对IoC相当陌生,并且对未来的最佳实践有点卡住。我正在开发的项目是在夏普体系结构的MVC中构建的。我们目前使用IoC的方式是在每个控制器的构造函数中指定存储库接口,并让Castle Windsor完成其余的工作并将这些实例传递给每个模型。然而,由于控制器可能会实例化许多新模型,而这些新模型又会调用其他模型等,所以它可能很容易失控,并且一些控制器现在在构造器参数中有20多个存储库接口。在温莎城堡/夏普体系结构中处理许多存储库
由于每个控制器都继承了一个BaseController,我正在考虑创建一个存储库,这只是一个存储库列表,它带有一个返回类型T的存储库的Get()方法,并且可以在基本控制器中实例化/填充并且只是传入每个模型中,那么我们就不必担心所有传递的存储库。
然而,这感觉错了一些如何,我不禁感到温莎城堡应该做这样的事情,但不知道如何。
很想听听你对此的想法。
谢谢。
感觉你的控制器需要承担很多责任,如果你不得不将20多个存储库注入其中任何一个或我缺少什么东西?夏普架构还引入了应用程序服务模式,它可以让你将一些逻辑分成更小的部分。 – 2011-03-21 14:38:30
我同意它的确如此,但系统的不同部分有很多依赖关系。这些存储库实际上并未在控制器中使用,它们就在那里,因此可以实例化一个模型,并且该模型可以实例化其他模型。我们尽力使事情尽可能脱离联系,但系统的性质使这变得困难。如果我从头开始,我可能会以不同的方式做,虽然我不太清楚如何... – Ben 2011-03-21 14:43:40
也有你的应用程序服务模式的任何资源,因为Google几乎没有任何显示(http://www.google .co.uk/search?q =%22Application + Service + pattern%22 + s%23arp + architecture) – Ben 2011-03-21 14:51:28