商业逻辑

在计算机软件中,业务逻辑域逻辑是编码现实世界业务规则的程序的一部分,该规则可以确定如何创建,存储和更改数据。它与可能与管理数据库或显示用户界面,系统基础架构或通常连接程序各个部分有关的较低级别的详细信息形成对比。

详细信息和示例

商业逻辑:

  • 规定业务对象如何相互作用
  • 强制访问和更新业务对象的路线和方法

商业规则:

商业逻辑包括:

  • 工作流是将文档或数据从一个参与者(一个人或软件系统)传递到另一个参与者的有序任务。

业务逻辑应与业务规则区分开。业务逻辑是企业系统的一部分,该系统确定了数据的转换或计算方式,以及如何将其路由到人员或软件(工作流)路由。业务规则是业务政策的正式表达。任何是过程或过程的内容都是业务逻辑,而任何既不是过程也不是过程的事物都是业务规则。欢迎新访问者是一个过程(工作流),该过程包括要采取的步骤,而表示必须欢迎每个新访客的过程是一项商业规则。此外,业务逻辑是程序性的,而业务规则则是声明性的。

例如,电子商务网站可能允许访问者在购物车中添加物品,指定运输地址并提供付款信息。该网站的业务逻辑可能包括一个工作流程,例如:

  • 结帐期间发生的事件顺序,例如首先要求运输地址的多页表格,然后在计费地址中,下一页将包含付款方式,最后一页将表示祝贺。

网站也将有业务规则:

  • 从项目描述页面中添加不止一次的项目会增加该项目的数量。
  • 访问者的地址,电子邮件地址和信用卡信息必须遵循的特定格式。
  • 与信用卡网络交谈的特定交流协议

该网站软件还包含其他不被视为业务逻辑或业务规则一部分的代码:

  • 外围内容与核心业务数据无关,例如定义网站的颜色,外观,背景图像和导航结构的HTML
  • 通用错误处理代码(例如,显示HTTP错误代码500页)
  • Web服务器启动网站时运行的初始化代码,该网站设置了系统
  • 监视基础架构以确保网站的所有部分正常工作(例如,计费系统可用)
  • 用于建立网络连接的通用代码,将对像传输到数据库,通过HTTP Post Events解析用户输入,等等。

商业逻辑和层/层

理论上的商业逻辑占据了三层体系结构的中间层。

业务逻辑可以在程序中的任何地方。例如,给定一个地址的某种格式,可以创建一个数据库表,该数据库表具有与商务逻辑中指定的字段完全对应的列,并添加了类型检查以确保不添加无效的数据。

商业逻辑经常发生变化。例如,当在线零售商开始将产品运送到新国家时,一组允许地址格式可能会发生变化。因此,通常认为制作实现业务逻辑相对隔离或松散耦合的代码。这使得对业务逻辑的更改更有可能需要在代码的一部分中进行一小部分代码更改。遥远但牢固的耦合代码还会产生更多的风险,即程序员只会进行一些必要的更改并错过系统的一部分,从而导致操作不正确。

多层体系结构通过创建与其他层或层(例如数据访问层服务层)分开的业务逻辑层来形式化此脱钩。每个层仅“知道”其他图层中的代码数量最少,这足以完成必要的任务。例如,在模型视图范围范式中,可以使控制器和视图层尽可能小,所有业务逻辑都集中在模型中。在电子商务示例中,控制器确定结帐顺序中的网页序列,还负责验证该电子邮件,地址和付款信息满足业务规则(而不是将任何内容都放在数据库本身中或较低级别的数据库访问代码)。

替代范式是可能的。例如,借助相对简单的业务实体,通用视图和控制器可以访问数据库对象,这些数据库对象本身包含有关他们接受的格式以及可能更改的所有相关业务逻辑(称为数据库模型)。

一些分层方案使用不同的应用程序层服务层,或者认为业务逻辑层与其中一个相同。

工具和技术

可以使用业务规则管理系统(BRMS)从程序代码中提取业务逻辑。

软件开发的业务规则方法使用BRMS并实施了与其他代码的非常强烈的业务逻辑分离。用户界面管理系统是另一种用于在业务逻辑和其他代码之间实施强大分离的技术。 Magic Pushbutton被认为是一种“反模式”:在这种情况下,它会产生不良约束,这使得以易于维护的方式编码业务逻辑变得困难。

域模型是业务规则要求的数据存储类型的抽象表示。

也可以看看