也许这个问题有点白痴,因为业务层可以保证一切,但我不知道是否应该努力将这种保证带到业务逻辑层。
例子:
我在 ASP.NET 应用程序中有一个业务逻辑,用户只有在登录后才能访问产品列表的第二页。在 ASP.NET 应用程序中,WebSecurity 负责用户登录,所以我无法在业务层调用 WebSecurity 方法。我该如何处理它?仅在 UI 层保留此法则?
最佳答案
业务逻辑是一个宽泛的术语,很容易使开发人员混淆他们所谈论的逻辑类型。人们认为“如果它是客户需求,那么它一定是业务逻辑”。
应用程序逻辑 - 这些是专门为应用程序制作的逻辑种类。他们确保应用程序顺利运行,例如过滤掉垃圾输入。
- UI 输入验证,例如电子邮件应始终看起来像 user@domain.com
- 应用安全、登录。
业务逻辑 - 这些类型的逻辑来自问题域。这些是现实世界的商业规则。
- 如果你能只谈规则而不提申请,那么它是一个很好的候选人。
示例
这是一个简单的练习:以下项目是对用户年龄的验证。找出哪个属于应用逻辑或业务逻辑。
- 年龄应始终为数字,并且在 1 到 100 之间。
- 用户的年龄必须年满 18 岁。
提示:如果顾客试图购买啤酒,收银员永远不会询问顾客的年龄是否为数字或是否在 1 到 100 的范围内。
在现实世界中,收银员是业务的一部分,并执行规则。它假定客户的年龄是正常的,而不是 1000。
The business does not care if you are authenticated or not. You are there to do business, that's it
我的小练习的答案:
年龄应该始终是数字,并且在 1 到 100 之间。 - 此验证是一个应用程序逻辑。确保用户输入的质量是应用程序的工作。没有垃圾输入。
用户的年龄必须为 18 岁或以上。 此验证是一种业务逻辑。业务假设输入的格式或范围总是正确的,它所要做的就是检查你是否被允许购买啤酒。
关于asp.net-mvc - 如何处理只能在 UI 中实现的业务逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31343492/