1

我正在学习 MVC 和 OOP,但有些事情让我感到困惑:

业务逻辑和应用逻辑有什么区别?

看一下以下支付和发票系统的场景:

客户收到发票,当他们支付发票时,通过屏幕上的付款确认。用户将他们从客户那里收到的金额输入系统。

现在,应用程序逻辑是否如下(在控制器中):

  • 用户不能输入负数
  • 用户必须仅以整数或#.# 或 #.## 或 ##.## 等形式输入输入。

业务逻辑(在模型中):

  • 输入的金额不能超过发票上的金额(即到期金额)
  • 和/或如果之前已支付部分款项,输入的金额不能超过所欠金额

我有正确的想法吗?

4

2 回答 2

1

通常,您应该将所有业务逻辑,包括用于格式化和验证的业务逻辑放入模型中。因此,不输入负数是模型而不是控制器的重点。阅读Skinny Controller、Fat Model以及使用Draper的演示者模式。Ryan Bates 最近在Railscasts上介绍了很多此类内容。可能也很好研究一下。

于 2012-09-16T08:47:54.040 回答
0

业务逻辑是指不能违反您的业务流程的规则。您给出的最后两个示例是业务逻辑,因为这些规则取决于业务而不是应用程序。

应用程序逻辑是与业务无关的逻辑。例如,确保执行前两条规则,因为它们会违反您列出的后两条规则。

反正我的2美分。

所以,是的,你在正确的轨道上。

于 2012-09-16T23:38:43.690 回答