Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 使用业务规则和对象数据的静态操作设计模式_Design Patterns - Fatal编程技术网

Design patterns 使用业务规则和对象数据的静态操作设计模式

Design patterns 使用业务规则和对象数据的静态操作设计模式,design-patterns,Design Patterns,我试图识别设计模式(用TypeScript编码)或理想情况下要解决的示例代码,以便根据记录数据评估业务规则,并执行诸如更改字段属性、显示验证或其他静态操作等操作 现有代码在单个方法中有很多if/else语句,根本没有对象设计。规则很简单,但数量众多(100+) 我试图通过这种模式实现的目标包括: 规则冲突(影响同一组件的两个规则)很容易识别 规则按逻辑方式分组 规则条件可以用于多个规则,并且每个规则可以有多个条件 按规则运行的操作可在其他规则中重用 复杂度低,维护时不会过于迟钝 我担心我描述

我试图识别设计模式(用TypeScript编码)或理想情况下要解决的示例代码,以便根据记录数据评估业务规则,并执行诸如更改字段属性、显示验证或其他静态操作等操作

现有代码在单个方法中有很多if/else语句,根本没有对象设计。规则很简单,但数量众多(100+)

我试图通过这种模式实现的目标包括:

  • 规则冲突(影响同一组件的两个规则)很容易识别
  • 规则按逻辑方式分组
  • 规则条件可以用于多个规则,并且每个规则可以有多个条件
  • 按规则运行的操作可在其他规则中重用
  • 复杂度低,维护时不会过于迟钝
我担心我描述的是一个非常常见的问题,所以对此我深表歉意,但我的搜索到目前为止还没有结果


非常感谢您的帮助或指导。

您能展示一下样本记录数据吗?是否可以显示if/else语句的简化代码?您是否尝试绘制业务实体的类图?示例语句:如果记录类型为X,则显示此字段集合。我的建议(很难回答一般问题)是查看您的规则逻辑如何重复并应用。许多设计模式(例如)都有其根源。