首页 > 解决方案 > 如何处理大量的条件

问题描述

介绍

我正在尝试构建一个系统,该系统将向前端提供应该和不应该显示哪些元素的信息。

但是我遇到的问题是我必须处理大量的条件,这些条件可能因对哪些模块可用的权利甚至哪些数据可用而有所不同。

所以我期待其他人也会遇到这个问题,但我找不到任何东西。

我试过的

我首先开始寻找可能解决这个问题的设计模式,但我找不到任何可以解决的问题。然后我去源头制作并阅读了所有可能模式的描述,但对我来说,它们似乎都不是我问题的解决方案。

之后我只是四处寻找是否有人遇到过类似的问题,但我似乎再次没有找到与我的问题的任何密切比较。

那么他们有什么建议我可以如何改进搜索还是我忽略了一些东西?

标签: c#design-patterns

解决方案


我建议您看一下规则设计模式之类的东西

实际上,这将是一大组谓词。

完成此操作所需的步骤:

1. Change boolean logic to predicates and extentions
2. Create interfaces that provide the proper logic and transformations

对于规则模式,有一个 Evaluator 类循环遍历规则集合并执行它们。它评估结果并决定采取什么行动。在最简单的情况下它只是执行所有规则,但也可以为每个规则添加一些选择逻辑,以允许 Evaluator 类决定是否运行规则(例如 IRule 接口上的 IsMatch() 方法以上)。


推荐阅读