asp.net-mvc – 抽象的CRUD控制器是个好主意吗?
发布时间:2020-12-16 06:41:59 所属栏目:asp.Net 来源:网络整理
导读:我们正在使用ASP.NET MVC开发相当大的应用程序,并且在开始时我们看到有一个抽象的基本控制器具有常见的CRUD操作(新的,保存,删除…)以及默认列表操作可能很有用.在我们的例子中,我们有20个实体通过这种控制器进行管理. 这有效并避免重复某些代码并使应用程序
我们正在使用ASP.NET MVC开发相当大的应用程序,并且在开始时我们看到有一个抽象的基本控制器具有常见的CRUD操作(新的,保存,删除…)以及默认列表操作可能很有用.在我们的例子中,我们有20个实体通过这种控制器进行管理.
这有效并避免重复某些代码并使应用程序更加同质,但是当您看到Controller很难确切地看到它实现了哪些操作时,它可能会实现一些不应存在的操作.例如,假设您想要编辑传递名称而不是id,您必须创建一个新的EditByName(名称),甚至这样做,您仍然可以使用编辑(id)操作,因为它位于基础中. 对我来说,整个事情对我来说有点香,但我没有找到任何显示替代品的例子,因为我看到的MVC应用程序有一个非常狭窄的域.有什么建议吗?任何例子? (我不一定是在ASP.NET MVC中,我认为这个问题对于任何MVC框架都是非常通用的). 解决方法
在某些方面,我认为这是一个好主意,但在其他方面,我认为这是滥用继承.我有一个共同的基本控制器,但它存在,因为我已经从我的控制器重构公共代码到它而不是设计先验.如果你的实体足够相似,那么你在基本控制器中共享的代码超过了你被迫拖拽的残余,那么也许它是值得的.另一方面,如果共享的代码相当简单,并且只是调用一个完成工作的私有抽象方法(这样你无论如何都要在真实的控制器中实现它),我不知道它为你买了什么.这并不像你直接实例化你的控制器(除了你的测试),因此拥有一个超出框架所需的通用接口并不是那么重要.
我的投票是将那些真正常见或者是贯穿各领域的事情重构为基类,而不是试图强迫一种可能并不存在的“是一种”关系. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-web-api – 使用Asp.Net Core WebAPI进行
- asp.net – ViewState vs cookies vs cashing vs
- Godaddy ASP.NET会员数据库困境
- asp.net core中AddTransient,AddScope和AddSing
- asp.net-mvc – MVC ViewModel绑定构造与展平
- asp.net – web.config转换中的匹配元素名称
- 如何从ASP.NET中的母版页访问内容页面控件
- Advanced Architecture for ASP.NET Core Web AP
- asp.net-mvc – asp.net mvc无法访问基本控制器中
- 初识ABP vNext(5):ABP扩展实体
热点阅读