首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按一定规则过滤数据的设计模式

按一定规则过滤数据的设计模式
EN

Stack Overflow用户
提问于 2018-07-03 11:24:37
回答 1查看 94关注 0票数 0

我需要根据一定的规则过滤数据。例如,我有一个记录列表,而另一方面,我有一组规则。每条规则都会过滤掉这个列表。我还为这些规则维护一个配置文件。这些规则可以通过配置文件打开或关闭。

例如,考虑我的配置文件..

代码语言:javascript
复制
[
  {
    "rule": "rule-1",
    "class": "org.company.RuleOneFilter.class",
    "isEnabled": true
  },
  {
    "rule": "rule-2",
    "class": "org.company.RuleTwoFilter.class",
    "isEnabled": false
  },
  {
    "rule": "rule-3",
    "class": "org.company.RuleThreeFilter.class",
    "isEnabled": true
  }
]

使用此文件,规则将很容易插入或拔出。我已经检查了责任链的规范,但仍然搞不懂是否要这么做!有人能建议我一个适当的设计模式来实现这一点吗?或者是否有任何框架来满足这一需求?

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 11:35:23

如果规则是累加的,责任链似乎是间接的。

您不需要将规则链接到链中,也不需要使用链/后继/等概念。

您需要的是基本的:迭代器模式。在规则列表的每个元素上迭代,根据它们的状态(不管是否启用),规则将被执行或不执行。

当然,每个具体规则都必须从要以统一方式操作的基类中派生。

现在,如果规则不是累加的,而是排他性的,而且你需要在候选人规则之间设定一个特定的顺序,那么责任链就有意义了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51153412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档