【发布时间】:2010-06-09 06:57:58
【问题描述】:
我有一个名为PropertyFilter 的接口,它曾经接受Property 并决定是否接受它。世界是美好的。
但现在接口发生了变化,因此实现可以选择添加额外的Propertys。例如,Customer 属性可能会扩展为 Name 和 Address 属性。
我认为这显然不再是过滤器了,但是你怎么称呼这种东西呢?
澄清一下:所谓的过滤器几乎是一种带有签名的方法
Property -> List<Property>
一个空列表表示不接受该属性,一个具有完全输入属性的列表表示接受该属性,一个带有新属性(可能包括原始属性)的列表表示扩展。
【问题讨论】:
-
对我来说仍然像是一个过滤器。
Filter[T]通常是T -> Boolean的某个函数,这似乎仍然是。 -
为什么要关心PropertyFilter中的Property?为什么不简单地拥有一个过滤器接口?
-
@mathk 我们选择 PropertyFilter 而不是 Filter,因为我们的代码库中已经有两个 Filter,并且我们使用的库中大约有数以亿计的过滤器。但问题实际上是关于名称的过滤器部分。
-
@Travis 我更新了问题以表明我们拥有的声明与过滤器的预期声明不匹配。