首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >(Java)接口可以称为API吗?

(Java)接口可以称为API吗?
EN

Software Engineering用户
提问于 2018-10-24 11:32:16
回答 1查看 2K关注 0票数 3

我正在努力理解API到底是什么。

根据我目前的理解,API (Application,应用程序编程接口)是一个由软件实例提供的契约,它保证一组定义的行为,这些行为由一组定义的操作触发。

API是一种“公共”结构,因为它定义了与外界交流的规则。

类似地,简单地说,Java接口也是一个构造,给定的Java类(实现该接口)必须提供,例如提供在该接口中定义的功能(通过编写函数实现)。

两者似乎在做几乎相同的事情,定义了一组行为,如果采取正确的操作(例如调用或调用的格式),这些行为将被触发。

那么,将Java提供的接口(例如集合)或我编写的接口引用为API是正确的吗?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2018-10-24 12:00:08

“API”是一个非常有弹性的术语,可以描述从一组URL到一个方法签名的任何东西。

  • 是的,Java接口描述了一个API,或者至少是一个API的一部分。
  • 但并不是每个API都有Java接口。

当您使用Java接口来描述API时,请注意接口包含了什么:只包含几个方法签名,可能还有一些JavaDoc。签名描述类型检查器的API,但不能描述这种方法的先决条件。这些额外的需求可以在该接口的文档中表达,但它实际上并不是接口本身的一部分。例如,有一些标记接口(如Serializable )是空的,根本不声明任何方法,但是有一些不能在Java类型系统中直接表示的含义。

您不应该使用诸如“这是一个API→让我们使用接口”这样的思想过程来处理接口。相反,接口描述对象向该对象的使用者提供何种方法。一条通向良好接口的路径通常通过一个简短的重构过程:

  • 此函数使用另一个对象。我希望我能使用不同类型的对象…
  • 描述我们如何使用这个对象,如何使用一个接口。在这里,我们需要getBar(),而在那边,我们的对象需要frobnicate(Something)
  • 在所有相关类中实现接口。如果您无法控制该类,请使用Adapter模式使其符合新接口。

注意,扩展基类既继承了接口/ API,也继承了该API的实现。事实证明,这并不理想,通常更好的做法是使用Java接口进行接口继承和组合以实现重用。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/380507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档