接口 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 来组合 publicprotected 成员。请注意,在 Java 9+ 中,modules 可用于控制访问,因此即使是 public 类也可能无法导出,因此可能不是一般意义上的 public

API 一词不是 Java 关键字,因此至少我们无需应对特定于语言的歧义。它通常用于表示 public API,与 exported API 同义。它是您(开发人员)允许您的客户查看和使用的所有内容的总和。有时,术语内部 API 用于表示相反的含义:您不允许客户查看或使用的类和成员。

【讨论】:

以上是关于接口 VS API VS 公共类的主要内容,如果未能解决你的问题,请参考以下文章

vs2008同一个解决方案中的项目如何使用另一个项目中的类?

C# 调用API接口处理公共类 自带JSON实体互转类

将 C++ ATL 可执行应用程序从 VS2003 迁移到 VS2013

为啥 c++ 类定义中的公共引用

从0开始,一起搭框架做项目公共基础数据操作类 RepositoryBase

最长公共子序列VS最长连续公共子序列