C# 是设计模式吗?链条
如何称呼该类\结构? 也许是设计模式 任务:C# 是设计模式吗?链条,c#,design-patterns,C#,Design Patterns,如何称呼该类\结构? 也许是设计模式 任务: 我有一个需要搜索项目的集合。 我有3个搜索级别。 我创建一个匹配器链,在每个级别的集合中搜索,如果没有找到,则将集合传递到下一个级别 我在寻找什么是设计模式 class Matcher { private readonly Matcher _nextMatcher; private readonly Func<lambda, bool> _predicate; public Matcher( Ma
我有一个需要搜索项目的集合。
我有3个搜索级别。
我创建一个匹配器链,在每个级别的集合中搜索,如果没有找到,则将集合传递到下一个级别 我在寻找什么是设计模式
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;
}
}
类匹配器
{
专用只读匹配器_nextMatcher;
私有只读Func_谓词;
公共匹配器(
Matcher nextMatcher,
Func谓词)
{
_下一个匹配器=下一个匹配器;
_谓词=谓词;
}
公共布尔匹配(集合对象,
IEnumerable源对象)
{
if(!\u谓词(someObjects,sourceObjects))
{
如果(_nextMatcher==null)
返回false;
return _nextMatcher.Match(someObjects,sourceObjects);
}
返回true;
}
}
从外观上看,这看起来像是设计模式的(正确)实现
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;
}
}
下面是另一个以.NET为中心的示例: