小编典典

我如何知道何时创建接口?

all

我正处于开发学习阶段,我觉得我必须更多地了解接口。

我经常阅读它们,但似乎我无法掌握它们。

我读过这样的例子:Animal base class, with IAnimal interface for things like ‘Walk’,
‘Run’, ‘GetLegs’, etc - 但我从来没有做过什么,感觉就像“嘿,我应该使用一个接口这里!”

我错过了什么?为什么我很难掌握这个概念!我只是被这样一个事实吓倒了,我可能永远不会意识到对一个人的具体需求——主要是由于缺少理解它们的一些方面!这让我觉得作为一名开发人员,我错过了一些顶级的东西!如果有人有过这样的经历并取得了突破,我会很感激一些关于如何理解这个概念的提示。谢谢你。


阅读 55

收藏
2022-06-27

共1个答案

小编典典

它解决了这个具体问题:

您有 4 种不同类型的 a、b、c、d。在你的代码中,你有类似的东西:

a.Process();
b.Process();
c.Process();
d.Process();

为什么不让他们实现 IProcessable,然后做

List<IProcessable> list;

foreach(IProcessable p in list)
    p.Process();

当您添加例如 50 种类型的类都做同样的事情时,这将更好地扩展。


另一个具体问题:

你看过 System.Linq.Enumerable 吗?它定义了大量的扩展方法,可以对任何实现 IEnumerable 的类型进行操作。因为任何实现
IEnumerable 的东西基本上都说“我支持以无序的 foreach
类型模式进行迭代”,所以您可以为任何可枚举类型定义复杂的行为(Count、Max、Where、Select 等)。

2022-06-27