繁体   English   中英

如果只声明方法签名,为什么我们需要接口?

[英]Why do we need interfaces if it only declares the method signature?

接口中声明的所有方法都是抽象的,我们必须在实现接口的 class 中重写带有签名和主体的方法。 那么使用界面有什么意义呢?

通常,接口被认为是开发人员之间的合同。 我的意思是,假设您正在开发一个专有的 API 供公众使用。 现在您不希望每个人都能够直接看到您的源代码,了解您是如何实现某些东西的,因为那是您的整个产品。 相反,您要做的是公开一个接口,该接口向其他开发人员显示期望的参数类型和返回值,并保证您的代码将实现它的用途,而不必透露它是如何工作的。

这也允许代码的可扩展性,因为通过允许某个方法接受接口而不是特定实现,然后您允许更改或可能改进实现,只要它仍然实现相同的接口并因此遵守相同的保证。

定义一个接口就像说“我希望能够拥有这些我可以调用的函数,它们接受这些参数并返回这些值,但我不在乎你是怎么做的”

接口就像名字所暗示的那样,提供了一些东西的接口。 因此,假设我想要一个应用程序,它从用户那里获取输入并将其存储在数据库中,然后根据用户的请求从数据库中获取数据以显示。 我可以简单地拥有一个接口来声明从数据库存储和获取的方法。 所以接受输入和显示数据的用户表单可以使用这些方法。 如果我决定更改数据库,这使我可以灵活地更改实现。 而且我不必使用接口中声明的方法更改部分。 因为所有的实现都会有这些方法。

我认为这个文档( https://docs.oracle.com/javase/tutorial/java/concepts/interface.html )也会有帮助。

我想我可以在这里再添加一件事,假设我想使用 facebook(或其他应用程序,如果你喜欢)提供的界面。 我可以通过提供的方法列表 go 来查看哪种方法适合我。 它使事情变得比通过所有实现细节必须 go 更简单。 这就是我认为@Tarun 在上面的答案中所说的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM