我的控制器越来越大,失控了。
典型的控制器执行以下操作:
简而言之,他们策划了很多事情。我想把所有东西都移到一个服务层中,但是在我喜欢的代码示例中还没有真正看到任何已实现的模式。我看过一些开源项目,如KiGG、Oxite、codecampserver、etc...but,它们都没有真正解决我的控制器收缩的问题。我想避免传递很多HTTPContext的东西,但也许这是不可能的。
还有其他的项目,我可以看看的最佳实践吗?我正在构建一个大型的工作流/数据输入应用程序。
谢谢你的一些链接和建议
发布于 2010-08-10 23:42:22
您应该查看一下关于MVCConf的这个伟大的把你的控制器放在节食上会话。
发布于 2010-08-10 18:36:08
在我看来,你似乎是依靠你的控制器来扮演太多的角色。
在设计控制器时,我通常认为它是控制对单一类型资源的访问。这意味着,例如,如果我正在创建这个页面,您现在正在阅读,在这里您可以发布答案和评论,我将有2个控制器,一个用于答案,另一个用于评论。对于不相关的资源访问,我将避免向问题控制器添加两个操作。这方面也有例外,但它们很少。
另外,每个控制器的基本功能是,它应该验证输入(即使是在浏览器中验证输入,因为任何人都可以编辑请求),将输入转换为传递到服务层(或业务逻辑)所需的对象,并在将其转换回视图可用的对象并向用户提供服务之前验证服务层的响应。其他的一切都应该在服务层中处理,保持控制器的细细和可预测。
发布于 2010-08-10 18:19:53
在我公司,我们总共有5个项目:
在这种情况下,所有项目都有对ORM的引用,然后视图对控制器、控制器对业务逻辑和业务逻辑对数据访问的引用。
https://stackoverflow.com/questions/3451913
复制相似问题