我正在编写一个规范,希望陈述(以明确的方式)程序员使用此模式:这种模式的名字是什么?
我们必须对正在处理的数据应用多个过滤器。该配置允许创建这些过滤器。可以有几个,或没有。我不想在导出类中使用这种逻辑(因为它可能会在未来变得很大,使用不同类型的过滤器,我们现在无法预见)。我希望它们一个接一个地运行,所以我将要求在导出类中添加一个方法:“addFilter”,它应该将对象存储在内部数组中,然后在实际导出过程运行时让它们执行。
我不知道问题是否足够清楚。这就像一个链式战略,但不完全是一个策略,因为它根本不是强制性的。
同样,问题是:我应该如何在规范中调用此模式?
编辑:什么我试图做一个例子:
$report = new Report();
$report->addFilter(new RemoveSpaces())
->addFilter(new SubstituteText($predefined_substitutions_array)
->addFilter(new FixCapitals())
->addFilter(new Encode("utf8"));
echo($report->generate()); // filters are actually used during generation.
据称,用户应该能够决定是否RemoveSpaces与否,代替什么文本,是否利用单词与否,使用什么编码等。将来肯定会在用户(客户端,实际)请求中添加一些过滤器。
一旦分解,过滤器应该有一个简单的界面,该报告将称:
foreach($this->filters as $current_filter) {
$data = $this->filters[$current_filter]->applyTo($data);
}
你可以添加一个伪代码示例来说明你在说什么吗? –
查看编辑的问题。 –