MVC/MVP/MVVM - 如何组织业务逻辑

And*_*ndy 5 .net architecture

这篇文章类似于MVC/MVP/MVPC,你在哪里提出你的业务逻辑?,但我正在寻找更多细节.我已经购买了模型作为绝大多数业务逻辑应该驻留的地方.但是,据我所知,模型内部有很多内容:应用程序状态管理,数据持久性,存储库,数据传输对象以及可能的其他内容.

我有一个具有超级复杂业务规则的应用程序.当用户尝试在视图中执行某个特定操作时,大约有20个不同的规则必须验证是否应该允许该操作,或者是否必须提示用户提供其他信息.我想按照每个方法编写这些业务规则,以便支持可测试性和文档.这些规则应该在存储库类中吗?也许在存储库上方的服务层?这里最好的做法是什么,记住我正在使用像Linq到SQL,EF或nHibernate的ORM解决方案?

Bet*_*eth -2

如果它们是业务规则,我会将它们放入数据库表中,以便轻松更改。

那么代码本身对于业务规则来说是愚蠢的,并且不关心规则的内容,只关心规则容器的结构。

关于您下面的评论,如果您出于其他原因需要将您的方法限制为以代码为中心的方法,那很好,它只会使开发项目的成本显着提高。

规则越复杂,表驱动而不是硬编码的好处就越大。如果您不习惯,那么困难的部分可能是为规则建立一个模型。模型建立后,开发就很简单了。

  • 此外,由于这些规则的复杂性,在数据库中管理它们将变得极其困难。 (3认同)