关于c#:我不确定我“得到”接口

I'm not sure I “get” Interfaces

好的,我理解接口的基本概念,但我不一定知道我"得到"了它的用途。

我现在正在家里用抽象工厂设计模式编写一个应用程序。主要是为了练习,但我的最终目标是销售应用程序(但这不是为了这个网站)。

无论如何,我用作参考的书在示例中使用了一个接口。

维基百科解释说,"接口用于编码各种类型的类共享的相似性,但不一定构成类关系。"

所以这基本上告诉我,接口是用来确保类之间的相似性的。

因此,如果我有一个名为Guitar的接口,我可以有一个名为GuitarAbstract的抽象类,以及其他名为BassGuitar、AcousticGuitar、ElectricGuitar的类,以及所有的继承和实现等。

我在智力上理解接口的需求和用法。这就像是额外的、冗余的代码。

我是不是错过了什么?


接口允许您编写代码,只要它实现了所需的接口,它就可以与任何类型的类一起工作。这使得代码可以很容易地重用,减少了工作。接口不是冗余的。

迭代器就是一个很好的例子。您不关心迭代器代表什么数据结构,只想检索数据。

这是接口的目的。


接口不是附加代码,它就像一个契约。它定义了必须提供的功能,并将实现细节留给类。这是我真正的组织工作的核心。