软件工程中有
一个名为
interface segregation的原则.它归结为小型接口比大型接口更好的概念.当这个想法发挥到极致时,理想的界面只声明
一个成员 – 但我们不要为此烦恼.关键是接口应描述严格的要求,而不是便利
功能.
在我们的具体情况中,IList< T> interface声明成员需要实现类型才能成为IList< T>.显然,为了成为IList,不需要类型来实现RemoveAll.这种类型很方便,但不是必需的.
但这是扩展方法的有效用例.您可以为任何IList< T>定义自己的RemoveAll扩展方法.并保持方便.