什么是领域逻辑?域逻辑的维基百科页面重定向到业务逻辑。它们是同一件事吗?如果不是,它们有何不同?
9 回答
域就是您要建模的内容。
如果您正在为业务问题建模,它们是相同的。
如果您正在建模其他东西,例如物理,您的系统中可能没有业务逻辑,但物理部分仍然是域逻辑。
域是您的应用程序所在的世界。因此,如果您正在开发一个航班预订系统,那么应用程序域将是航班预订。
另一方面,业务逻辑是整个应用程序域的一个更离散的块。业务逻辑通常是为执行特定业务流程而构建的一段代码。因此,您将有业务逻辑来进行预订。另一个业务逻辑是退还已取消门票的代码。
支持您的业务流程的对象将成为您的业务对象!
业务逻辑是目的论的(关注如何实现目标),而领域逻辑是本体论的(存在什么,或用于推理的对象模型)
领域逻辑适用于问题领域,例如“订单处理”。领域逻辑是关于您使用的实体(对象模型)及其关系。
业务逻辑包含特定于您的上下文的规则,例如“当超过金额 Z 时,将使用折扣 Y 处理来自 X 组客户的订单”。业务“逻辑”是关于编码有关您的业务(或使用该程序的客户的业务)的事实。
让我们介绍一个场景。
你有一个 XYZ 约束的客户,他希望你让他的系统在线。
用户可以在线下订单,跟踪订单,付款等。
从客户的角度来看,这个系统将被称为商业理念 ,而“在线下订单”据说是业务流程之一,如果用户在线下订单,客户想要用户的每个细节,想要在屏幕上显示等等说是业务逻辑。
现在,您将把他的商业理念建模到您的观点中,这样您的系统可以完成他的所有业务流程或他的完整商业理念,称为问题域或应用程序域或您的应用程序域。
现在您将首先识别所有业务流程。并识别实体或对象以完成业务流程。那些对象被称为 Business Obect或Domain Object以及实现业务流程的方法或逻辑,例如 placeOrder 被称为Domain Logic。
所以业务逻辑是客户想要的,因为它在客户业务领域和领域逻辑是你实现它的方式。因为它在您的应用程序域中。
特定于特定专业领域/领域的业务逻辑。
我会说业务逻辑与:
域中实体之间的任何逻辑或关联。
那么学生如何与班级或学生相关联。如何创建新班级以及如何为该班级注册学生
与业务规则、确定结果、服务、事件、流程、计算、转换和相关数据操作/创建有关的任何事情。
我发现很难找到好书/老师来帮助构建领域逻辑。构建域很容易。但在我看来,域逻辑似乎是一个没人想去的地方。
我的领域是制药。它涉及隔间、剂量、微分方程和统计数据。如果您想称其为我的“业务”,那么我猜它是“业务逻辑”。
- 业务逻辑关注协调视图和模型(用户界面和数据)之间的有效交互。
- 域逻辑是关于在应用程序的两侧(客户端和服务器)保持内部一致的模型表示。