题
我风具有约20个不同参数的构造模型类,每一个服务?这是正常或一个标志,什么是关闭的。
解决方案
我想,斩钉截铁,您的控制器与太多的服务进行交互。我从来没见过你的代码 - 所以我打算关闭的假设 - 但在我看来,你的控制器通过调用无数的“小”的服务,而不是对构成业务逻辑较少,“较大”服务绘画创作的商业逻辑从较小的服务。
有一个到处寻找关于“编排服务”与“实体”或“能力”服务的信息,你就会明白我的意思。如果您创建业务流程的服务,提供他们所需要的逻辑你的控制器,你的架构改进,因为你的控制器真的不应该包含任何业务逻辑可言。
我真的认为你消费服务的数量是这里的问题。 IoC容器可以在一定程度上解决了如何绑定类型的注入参数等,但我认为这个问题是您在这一点上的架构。
其他提示
您可以尝试整合一些服务,或者想在更小范围的组件重构控制器视图零件。此外,像春天依赖注入风格框架可以用这样的事情有所帮助。
Allthough我不知道您的设置。 20似乎有点多,我想你违背了SRP(单一职责priniciple)。但是,因为我看不到你的代码是不可能告诉。如果你真的需要所有这些服务在一个模型类,那么也许你需要将它们放在一个factoryclass并使用它作为一个参数。
这是很难给这个有什么好的答案,因为我们不知道你的域名。
作为马特*所述的依赖关系注入可以帮助你在这里sprint.NET 是一个很好还有其他几个人。
看到你提MVP特别是,你至少应该看看 Ent Lib4.1 现在有 团结, 微软的采取。他们 更 网站可能是一个良好的开端,如果这是新的。
还有 软件工厂 那 将与visual studio 和给你工具,用于创建最有价值球员对网站作为相联系或网络服务。这些来自模式和做法。