asp.net-mvc – 神控制器 – 如何防止它们?
|
在我一直在研究的几个MVC项目中,显而易见的是,有一些问题的控制器已经有机地成长为上帝阶级,每个人都在自己的领域,如果你愿意的话. 这个问题可能更多的是“什么在哪里”,但我认为这是一个重要的问题,关于SRP(单一责任原则),DRY(不要重复自己),并保持简洁,“敏捷” – 我没有足够的经验(用这种模式和一般设计)来了解这个. 在一个项目中,我们有一个NutritionController.随着时间的推移,它已经成长为包括这些动作(许多与他们各自的GET,POST和DELETE方法):
然后我们有一个ExerciseController,它将包含许多类似的操作,例如搜索和收藏夹操作.这些是否应该重构到自己的控制器中,这样就是这样? SearchController {
SearchExercise
SearchNutrition
//... etc
}
FavoritesController {
ViewNutritionFavorites
AddToNutritionFavorites
AddToExerciseFavorites
EditNutritionFavorites
EditExerciseFavorites
//... etc
}
在我看来,如果你把它们分成不同的控制器,你将会在某种程度上增加一个令人难以置信的大型依赖,来处理你需要的信息.或者你将有一个完全通用的处理应用程序,这将非常难以处理,因为你将不得不跳过这么多的圈,以获得你想要的效果(在M,V或C级别). 我在想这个错误的方式?例如,我应该有一个通用的“收藏夹”对象,然后让控制器决定要将其抛出的视图? *对不起拼写出首字母缩略词 – 我正在这样做,以防其他人遇到这个问题,这些东西是无知的 编辑: 解决方法我会根据责任打破你的第一个列表:HomeController的 >索引 FoodItemController > ViewFoodItem NutritionController > ViewNutritionSummary FavoritesController > AddToFavorites Django的MVC方法是将责任分为“应用程序”,每个应用程序都有自己的型号,控制器,甚至必要的模板.您最喜欢的应用是食品应用,营养应用,搜索应用和收藏应用. 编辑:OP提到搜索对每个控制器更具体,所以我做了这些动作.然而,搜索也可能只是一般的全局事物,所以在这些情况下,SearchController会很好. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在ASP.net MVC 2.0中使用Url.Content
- asp.net – Log4net可以有多个appender写入同一个文件?
- ASP.NET DateTime Picker
- asp.net-mvc – 免费.Net云主机与SQL Server数据库
- asp.net-mvc – 强大的html帮助程序,具有不同的get和post模
- asp.net – 如何在加载/性能测试期间找到IIS要模拟的平均并
- asp.net-mvc – 在哪里可以找到一个简单的简单解释MVC?
- 为什么ASP.NET抛出这么多异常?
- asp.net-mvc-2 – 为什么mvc Html.HiddenFor不渲染我的字段
- asp.net-web-api – 为什么我的ApiController方法的ModelSt
- asp.net-mvc – MVC 4 ModelBinder
- jQuery validate 根据 asp.net MVC的验证提取简单
- mvc6与signalr的任何样品?
- asp.net – 如何在mvc中使用自定义成员身份添加更
- asp.net – 向GridView Row添加ID
- asp.net-mvc-3 – 向@ Html.ValidationSummary添
- asp.net – Global.asax的方法来自哪里?
- asp.net-mvc-3 – ModelState.AddModelError不显
- asp.net-mvc – ASP.NET MVC 4,迁移 – 如何在生
- asp.net-mvc-4 – DataAnnotation的必需属性
