mvc 设计模式的哪一部分代表了业务逻辑?
Which part of mvc design pattern represents the business logic?
我对编程中业务逻辑的定义有点困惑,因为我以前开发时不注意任何这些术语,但现在我想成为一个好的开发商。
当我阅读 Wiki 有关业务逻辑的定义时,我阅读了以下定义:
In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, displayed, stored, and changed.
在另一个 website 中,我阅读了以下定义示例:
Business logic is that portion of an enterprise system which determines how data is:
Transformed and/or calculated. For example, business logic determines how a tax total is calculated from invoice line items.
Routed to people or software systems, aka workflow.
所以我想知道 MVC 的哪一部分代表业务逻辑,它是控制器还是模型或其他部分可以在 MVC 中?
我知道控制器负责向模型发送命令,但它负责应用业务规则吗?
例如让我们以上面的税收为例:
假设我们从视图中的表单中获取发票数据,数据将被定向到控制器,但是税款将在哪里计算,我们将在控制器中计算还是寻求帮助一个外部 class 来计算它,还是我们会在更新数据库之前在模型中计算它?
如果能举个例子,我们将不胜感激。
您可以将税收计算逻辑放在控制器中,但最好将其放在模型中,因为它的耦合更松散。想在很多页面上计算税是合理的,所以不要把它放在很多控制器中,把它放在一个可以重复使用的模型中。
如果您听到有人在谈论 "Fat" 控制器与 "Thin" 控制器,那么这就是他们在谈论的内容。大多数开发人员会提倡在他们的控制器中使用很少的代码(使它们 "thin")并且实际上只是充当模型的 relay/orchestrator。
我确实认为 Model
这个术语有点令人困惑,因为在面向服务的体系结构(以及与此相关的功能语言)中,他们强调尝试拥有 "dumb" 没有的对象任何功能,他们经常将这些愚蠢的对象称为 "Models"。但是当谈到 MVC 时,"Model" 实际上指的是业务模型,它结合了保存值的哑对象和在它们之上工作的服务。
在企业软件开发中,我们有时必须使用 N 层应用程序。它们是 3 层或更多层。
1- 数据层:
2- 应用层(业务逻辑、逻辑层或中间层)
3- 表示层:它是用户可以直接访问的层,例如网页,包括简单的控件和用户输入验证或操作系统GUI。 ,.
MVC 是 图形用户界面 早期开发的开创性见解之一,也是根据其职责描述和实现软件结构的首批方法之一
这表示 MVC 用作表示层。他们是其他人,如 MVP、MVVM..
有时在小型应用程序中,使用 MVC 结构来分隔层,其中模型用作数据层,控制器用作逻辑层。
我对编程中业务逻辑的定义有点困惑,因为我以前开发时不注意任何这些术语,但现在我想成为一个好的开发商。
当我阅读 Wiki 有关业务逻辑的定义时,我阅读了以下定义:
In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, displayed, stored, and changed.
在另一个 website 中,我阅读了以下定义示例:
Business logic is that portion of an enterprise system which determines how data is: Transformed and/or calculated. For example, business logic determines how a tax total is calculated from invoice line items. Routed to people or software systems, aka workflow.
所以我想知道 MVC 的哪一部分代表业务逻辑,它是控制器还是模型或其他部分可以在 MVC 中?
我知道控制器负责向模型发送命令,但它负责应用业务规则吗?
例如让我们以上面的税收为例:
假设我们从视图中的表单中获取发票数据,数据将被定向到控制器,但是税款将在哪里计算,我们将在控制器中计算还是寻求帮助一个外部 class 来计算它,还是我们会在更新数据库之前在模型中计算它?
如果能举个例子,我们将不胜感激。
您可以将税收计算逻辑放在控制器中,但最好将其放在模型中,因为它的耦合更松散。想在很多页面上计算税是合理的,所以不要把它放在很多控制器中,把它放在一个可以重复使用的模型中。
如果您听到有人在谈论 "Fat" 控制器与 "Thin" 控制器,那么这就是他们在谈论的内容。大多数开发人员会提倡在他们的控制器中使用很少的代码(使它们 "thin")并且实际上只是充当模型的 relay/orchestrator。
我确实认为 Model
这个术语有点令人困惑,因为在面向服务的体系结构(以及与此相关的功能语言)中,他们强调尝试拥有 "dumb" 没有的对象任何功能,他们经常将这些愚蠢的对象称为 "Models"。但是当谈到 MVC 时,"Model" 实际上指的是业务模型,它结合了保存值的哑对象和在它们之上工作的服务。
在企业软件开发中,我们有时必须使用 N 层应用程序。它们是 3 层或更多层。
1- 数据层:
2- 应用层(业务逻辑、逻辑层或中间层)
3- 表示层:它是用户可以直接访问的层,例如网页,包括简单的控件和用户输入验证或操作系统GUI。 ,.
MVC 是 图形用户界面 早期开发的开创性见解之一,也是根据其职责描述和实现软件结构的首批方法之一
这表示 MVC 用作表示层。他们是其他人,如 MVP、MVVM..
有时在小型应用程序中,使用 MVC 结构来分隔层,其中模型用作数据层,控制器用作逻辑层。