将接口成员定义为类或其接口等效项是否更好
本文关键字:接口 是否 更好 成员 定义 | 更新日期: 2023-09-27 18:31:30
在接口定义中,声明所需类或接口等效类型的成员是否更好?例如,假设我们有一个名为 IFoo
的接口,该接口由类实现 Foo
.如果我们声明另一个接口IBar
,并且我们需要 *Foo 事物的表示IBar
哪个更好?
interface IBar {
IFoo member { get; set; } // interface
}
或。。。
interface IBar {
Foo member { get; set; } // class
}
这两个阵营似乎都有同样有效的论据。你有什么想法?
使用接口可以更轻松地将初始实现换成新实现 - 无需更新引用,因为它们处理接口提供的抽象。它还可以帮助您进行单元测试,因为您可以根据界面轻松模拟。
一个常见示例,如果使用接口,代码会更灵活,则 IList 是。
接口不仅提供了更大的灵活性,还允许您构建更好的抽象。
它还会迫使你思考这样的事情 - 如果类实现了多个接口,那么你必须知道哪种抽象(接口)最合适,作为其他接口定义的一部分。