界面使用问题

时间:2011-01-06 09:41:19

标签: oop language-agnostic

为什么界面看起来与类完全相同,只是函数声明。界面的主要好处是什么?除了共享界面的多个类,但仍然感觉像是什么?每个类都有它自己的实现,因此为什么要使用接口?

7 个答案:

答案 0 :(得分:1)

使用接口意味着接口的调用者不依赖于特定的实现。

例如,如果您正在使用C#并且需要一系列数据,那么您希望在IEnumerable<T>方面看到这一点。您不关心实现是什么 - 并且需要一个特定的实现将限制您的代码的使用方式。

另一个例子是Stream - 这是一个抽象类而不是接口,但基本原理是相同的。您可以将任何类型的流解析为XmlDocument(以选择任意使用流)。无论是FileStreamNetworkStreamMemoryStream还是其他任何内容都无关紧要,只要它支持所需的操作。

答案 1 :(得分:1)

它允许两个完全不相关的类实现相同的接口,因此可以以相同的方式使用。 (就像在具有完全不同实现的两个列表上调用ISortable.Sort一样。 这就像多重继承,只有更好。 :)

接口也用于在进程之间共享对象(Google for COM或Automation)。

答案 2 :(得分:1)

答案 3 :(得分:0)

在静态类型的面向对象语言中,接口使得可以使用仅共享接口的类以多态方式使用。

答案 4 :(得分:0)

当您需要在不同子系统之间进行交互时通常使用的接口。它还具有松散耦合和隐藏实际实现对象的优点。

答案 5 :(得分:0)

在使用界面进行设计时,可以强调预期的行为,而不会因任何实现无效的细节而造成污染。

接口表示合同,允许应用程序的其余部分通过此接口使用任何对象,该对象遵守此合同。

简而言之:

  1. 设计清晰度
  2. 设计的灵活性。

答案 6 :(得分:0)