【问题标题】:Why have an API and an implementation?为什么要有 API 和实现?
【发布时间】:2016-11-13 14:48:03
【问题描述】:

很多时候,我看到单个类 (Java) 实现单个接口。该接口仅用于单个类。没有其他类实现它。我们为什么要做这个?在我看来,我们不需要接口,只需要类。

示例:https://github.com/essentials/Essentials/blob/2.x/Essentials/src/com/earth2me/essentials/I18n.java

【问题讨论】:

  • 我需要一个例子才能考虑这个问题。
  • @a_river_in_canada 我加了一个
  • 你只有一个实现现在...有些人喜欢超级未来兼容。这是否总是最有效的方法当然是有争议的......
  • 因为也许您想针对接口编写第二个实现稍后...
  • 测试,以及模拟较低级别组件的能力。请参阅 SOLID 中的 D en.wikipedia.org/wiki/SOLID_(object-oriented_design)

标签: oop interface implementation


【解决方案1】:

暂时忘记语言。

使用接口的原因有很多,只有一个类实现接口绝对没问题。

想象一下你想编写可测试的代码,你想做所有的好事,进行测试等等。

编写代码的一个好方法是永远不要对类中的任何依赖项进行硬编码。如果您注入依赖项并且通过接口或抽象类完成,它会使生活变得更加轻松。所以你基本上从不说嘿类,这是一个猫的实现,你说嘿,这是一个通用的动物,使用它。

界面有一项工作是提供合同,这就是您正在使用的。因此,您将代码与依赖项解耦,因此现在您可以对其进行测试,并且可以轻松地模拟所有依赖项。您拥有一个或多个实现这一事实没有任何区别。

【讨论】:

  • “编写代码的一个好方法是永远不要对类中的任何依赖项进行硬编码。” - 我只想补充一点,编写实用且简单的代码也很好。一些硬编码的依赖比依赖注入的接口更实用、更简单。
猜你喜欢
  • 2018-06-08
  • 1970-01-01
  • 2015-11-22
  • 2021-06-09
  • 2010-09-15
  • 2013-08-20
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多