如何调用该类\结构? 也许是设计模式?
任务:
我有一个我需要搜索项目的集合
我有3个级别的搜索
我创建了一个Matcher链并在每个级别上搜索集合,如果找不到则将集合传递到下一级。
我正在寻找什么是设计模式。
class Matcher
{
private readonly Matcher _nextMatcher;
private readonly Func<lambda, bool> _predicate;
public Matcher(
Matcher nextMatcher,
Func<lambda, bool> predicate)
{
_nextMatcher = nextMatcher;
_predicate = predicate;
}
public bool Match(Collection<SomeObject> someObjects,
IEnumerable<SomeObject> sourceObjects)
{
if (!_predicate(someObjects, sourceObjects))
{
if (_nextMatcher == null)
return false;
return _nextMatcher.Match(someObjects, sourceObjects);
}
return true;
}
}
答案 0 :(得分:7)
从它的外观来看,这看起来像Chain of Responsibility设计模式的(正确的)实现。
这是另一个更以.NET为中心的例子:http://www.dofactory.com/Patterns/PatternChain.aspx