Architecture 什么是域逻辑?

Architecture 什么是域逻辑?,architecture,terminology,business-logic,Architecture,Terminology,Business Logic,什么是域逻辑?域逻辑的Wikipedia页面重定向到业务逻辑。它们是相同的东西吗?如果不是,它们有什么区别?特定于某一特定专业领域/领域的业务逻辑。领域就是您要建模的领域 如果你在为一个商业问题建模,它们是一样的 如果您正在建模其他东西,例如物理,那么您的系统中可能没有业务逻辑,但物理部分仍然是域逻辑。域是您的应用程序所在的世界。因此,如果您正在使用航班预订系统,那么应用程序域将是航班预订 另一方面,业务逻辑是整个应用程序域中更为离散的块。业务逻辑通常是为执行特定业务流程而构建的代码的一部分。因

什么是域逻辑?域逻辑的Wikipedia页面重定向到业务逻辑。它们是相同的东西吗?如果不是,它们有什么区别?

特定于某一特定专业领域/领域的业务逻辑。

领域就是您要建模的领域

如果你在为一个商业问题建模,它们是一样的


如果您正在建模其他东西,例如物理,那么您的系统中可能没有业务逻辑,但物理部分仍然是域逻辑。

域是您的应用程序所在的世界。因此,如果您正在使用航班预订系统,那么应用程序域将是航班预订

另一方面,业务逻辑是整个应用程序域中更为离散的块。业务逻辑通常是为执行特定业务流程而构建的代码的一部分。因此,您将具有接受预订的业务逻辑。另一个商业逻辑是退票代码


支持您的业务流程的对象将成为您的业务对象

我的领域是制药。它涉及隔间、剂量、微分方程和统计。如果你想称之为我的“业务”,那么我猜它是“业务逻辑”。

域逻辑适用于问题域,例如“订单处理”。域逻辑是关于您使用的实体(对象模型)及其关系的


业务逻辑包含特定于您的上下文的规则,例如“来自X组客户的订单在超过金额Z时将使用折扣Y进行处理”。业务“逻辑”是关于编码有关您的业务(或使用该程序的客户的业务)的事实。

我认为业务逻辑与:

域中实体之间的任何逻辑或关联

那么,学生与班级或学生的关系如何呢。 如何创建一个新的班级,如何为该班级注册学生

与业务规则、确定结果、服务、事件、流程、计算、转换和相关数据操作/创建有关的任何内容


我发现很难找到好的书籍/老师来帮助构建领域逻辑。构造域很容易。但在我看来,领域逻辑似乎是一个没有人愿意去的地方。

业务逻辑是目的论的(关注如何实现目标),而领域逻辑是本体论的(存在什么,或者用来推理的对象模型)

  • 业务逻辑涉及协调视图和模型(ui和数据)之间的有效交互
  • 域逻辑是关于在应用程序的两侧(客户端和服务器)保持内部一致的模型表示
      让我们来讨论一个场景

      您有一位XYZ约束的客户,他希望您使他的系统联机。
      用户可以在线下订单、跟踪订单、付款等

      从客户的角度来看,该系统将被称为业务理念 而“在线下订单”据说是业务流程之一 如果用户在线下订单,客户需要用户的每个细节,希望在屏幕上显示它,等等,称之为业务逻辑

      现在,您将把他的业务理念建模到您的观点中,使您的系统能够完成他的所有业务流程或他完整的业务理念,即问题域应用程序域应用程序域

      现在,您将首先确定所有业务流程。并识别实体或对象以适应业务流程。那些被称为业务对象或域对象的对象,以及实现业务流程的方法或逻辑,如placeOrder,被称为域逻辑


      因此,业务逻辑是客户机想要的,因为它在客户机业务域中,域逻辑是如何实现它的。因为它在您的应用程序域中

      那么,域逻辑是业务逻辑的子集吗?如果是的话,这似乎与jakber的答案相矛盾。业务逻辑是域逻辑的子集吗?这似乎与Brian Knoblauch的答案相矛盾,如果soI不认为Brian Knoblauch的答案不正确,那么这只是一个稍微狭隘的概念。如果你正在构建一个CRM系统,那么你的问题域就是CRM,而你的域逻辑就是特定于CRM领域的业务逻辑。如果它们有所不同,我认为这将是最好的答案。域逻辑将封装不同的域对象及其相互之间的关系。而业务逻辑将描述每个对象如何使用这些关系来实现特定目标。这是迄今为止最清晰的答案,谢谢!因此,在这方面,数据层将关注域逻辑对象的持久性(以及访问、查询等),对吗?下面是一篇关于该主题的博文: