抽象类型和接口
抽象类型和接口是用于指定编程抽象的两种机制。 抽象指定继承者或实施者必须遵循的一个协定。 抽象类型可以选择提供实现的详细信息;而接口不能提供实现的任何详细信息。
除非通过开发若干使用抽象的具体实现和 API 对抽象进行了测试,否则不要提供抽象。
如果在实际方案中未对抽象进行测试就提供了抽象,将很有可能遗漏一些设计问题;而且,对这些问题的修复很可能甚至必然导致在以后的版本中引入兼容性问题。
在设计抽象时,则要在抽象类与接口之间谨慎选择。
有关选择抽象类型还是接口的详细讨论,请参见 在类和接口之间选择。
考虑为抽象的具体实现提供引用测试。 通过这样的测试,用户应可以测试出抽象的实现是否正确地履行了协定。
通过引用测试,可以验证是否正确实现了某一接口。 例如,对 ICollection<T> 进行的测试可以验证:在对实现该接口的实例两次调用 Add 方法后,Count 属性是否增加 2。
部分版权所有 2005 Microsoft Corporation。 保留所有权利。
部分版权所有 Addison-Wesley Corporation。 保留所有权利。
设计指引的详细信息,请参阅"框架设计准则: 公约、 成语和可重复使用的模式。网络图书馆"书 Krzysztof Cwalina 和布拉德 · 艾布拉姆斯,2005年艾迪生 - 韦斯利,发表。