接口 VS API VS 公共类
Posted
技术标签:
【中文标题】接口 VS API VS 公共类【英文标题】:Interfaces VS APIs VS Public classes 【发布时间】:2020-10-14 19:59:27 【问题描述】:我对这三个术语的含义和区别有点困惑。
-
接口
API
公开课
我之前问过 API 和公共类之间是否有任何区别。这是问题: Public methods vs public APIs
我明白了,但是现在有了新的概念Interface,我又对Interface和API和Public类的区别感到困惑,所以为了让事情更清楚,让我们看这句话:
信息隐藏允许开发人员单独处理模块,而无需其他开发人员知道他们正在处理的模块的实现细节。而是通过其接口使用该模块。
这里的接口是什么意思?和公开课一样吗?
【问题讨论】:
Java 中的“接口”通常指的是interface
关键字。这是实现 API 的一种方式。然而,在那句话中,“接口”是通用的,与“公共 API”的含义相同。
在这种情况下,its interface
不一定意味着特定接口的实现。 Imo,这意味着一个人从课堂上获取信息的方式。因此getter()
隐藏了信息的存储方式,并且是类接口的一部分,允许类的用户访问信息。 setter()
也是如此。在这两种情况下,它们都可能返回或设置integer
,但在内部,类的作者可以根据需要存储它们(例如,可能是字符串)。
引用的来源是什么?
@jaco0646 阿尔伯塔大学的面向对象设计课程
【参考方案1】:
这些术语令人困惑的一个重要原因是它们是 Java 中的关键字并且它们在一般的、与语言无关的上下文中具有意义。这些术语在编程的一般上下文中的含义与特定关键字在 Java 中的含义略有不同。
一般来说,接口这个词是抽象的同义词。当您阅读“程序到接口”时,它意味着程序到抽象。在 Java 中,interface
关键字表示特定类型的无状态抽象,与abstract class
形成对比。一般来说,这两个都是抽象,因此都是编程接口。
一般来说,public 一词表示对开发团队之外的客户可见和使用的任何代码部分。在 Java 中,public
关键字表示类和成员之间的特定访问级别。由于客户也可以查看和使用protected
成员,因此在一般编程环境中这些也可能被视为public。有效的 Java 使用术语 exported 来组合 public
和 protected
成员。请注意,在 Java 9+ 中,modules 可用于控制访问,因此即使是 public
类也可能无法导出,因此可能不是一般意义上的 public。
API 一词不是 Java 关键字,因此至少我们无需应对特定于语言的歧义。它通常用于表示 public API,与 exported API 同义。它是您(开发人员)允许您的客户查看和使用的所有内容的总和。有时,术语内部 API 用于表示相反的含义:您不允许客户查看或使用的类和成员。
【讨论】:
以上是关于接口 VS API VS 公共类的主要内容,如果未能解决你的问题,请参考以下文章
vs2008同一个解决方案中的项目如何使用另一个项目中的类?
将 C++ ATL 可执行应用程序从 VS2003 迁移到 VS2013