mvc设计模式的哪一部分代表了业务逻辑?

时间:2015-08-16 19:43:30

标签: c# asp.net-mvc asp.net-mvc-4 business-logic

我对编程中业务逻辑的定义感到有些困惑,因为我过去在不注意任何这些术语的情况下开发,但现在我想成为一名优秀的开发人员。

当我在Wiki中阅读有关业务逻辑定义的内容时,我已阅读以下定义:

  

在计算机软件中,业务逻辑或域逻辑是程序的一部分,它编码确定如何创建,显示,存储和更改数据的实际业务规则。

在另一个website中,我通过示例阅读了以下定义:

  

业务逻辑是企业系统中确定数据方式的部分:   转换和/或计算。例如,业务逻辑确定如何从发票行项目计算税额。   路由到人员或软件系统,即工作流程。

所以我想知道MVC的哪一部分代表业务逻辑,是控制器还是模型或其他部分可能在MVC中?

我知道控制器负责向模型发送命令,但它是否负责应用业务规则?

例如,让我们采用上述税收示例:

假设我们从视图中的表单获取发票数据,数据将被定向到控制器但是计算税额的地方,我们会在控制器中计算它还是我们要求外部帮助要计算它的类还是我们在更新数据库之前在模型中计算它?

可以举例说明。

2 个答案:

答案 0 :(得分:3)

可以将税务计算逻辑放在控制器中,但最好将它放在模型中,因为它更松散耦合。想要在很多页面上计算税收是合理的,所以不要把它放在很多控制器中,把它放在一个可以重复使用的模型中。

如果你听到有人在谈论"胖"控制器vs" Thin"控制器,这是他们正在谈论的。大多数开发人员都会主张在他们的控制器中使用非常少的代码(使它们变得简单")并且真正只是作为模型的中继/协调器。

我确实认为术语Model有点令人困惑,因为在面向服务的体系结构(以及功能语言)中,他们强调尝试使用" dumb"没有任何功能的对象,他们经常将那些愚蠢的对象称为"模型"。但是当谈到MVC时,"模型"实际上是指商业模式,它包含了持有价值的愚蠢对象和在其上工作的服务。

答案 1 :(得分:0)

在企业软件开发中,我们必须使用N层应用程序。它们是3层或更多层 1-数据层:
2-应用层(业务逻辑,逻辑层或中间层)
3-表示层:它是用户可以直接访问的层,例如网页,包括简单控制和用户输入验证或操作系统 GUI 。 ,。

MVC是图形用户界面早期开发的开创性见解之一,也是描述和实施软件构造的首要方法之一 这说MVC用作表示层。他们是其他像MVP,MVVM ..
在小应用程序中的某个时间,MVC结构用于分离模型用作数据层的层,控制器用作逻辑层。