gpt4 book ai didi

oop - 接口(interface)的功能主要是为了使用函数而不知道类是如何构建的吗?

转载 作者:行者123 更新时间:2023-12-04 19:42:46 24 4
gpt4 key购买 nike

据我了解它们是契约(Contract)的接口(interface),我将其解释为契约(Contract)词,即必须具有接口(interface)中指定的内容(例如打开、关闭、读取、写入接口(interface)处理文件)。

但是我很难理解的是为什么你需要一个接口(interface)来告诉你这个类必须能够做什么,你不知道你已经在接口(interface)规范中写了它吗?

我可以看到接口(interface)的唯一原因是在大型项目中,您希望能够在不真正知道如何构建的情况下使用类。通过查看界面需要什么,您可以知道如何使用它。

这让我想知道为什么我应该在我将是唯一一个工作的项目中使用(或者如果我应该)接口(interface)。我很确定它还有更多我没有看到的用途。

我的大部分假设和解释来自 this questionthis vbforums post

最佳答案

你说得对,接口(interface)指定了契约(Contract),但实现可能有很大不同。

简单示例:Java 中的列表。列表是一个接口(interface)。两种常见的实现是 ArrayList 和 LinkedList。每个人的行为不同,但遵守相同的契约(Contract)。我的意思是 ArrayList 具有 O(1) (常量)访问权限,而 LinkedList 具有 O(n) 访问权限。

如果你还不明白 O(1) 和 O(n) 是什么意思,我建议你看看 Plain english explanation of Big O .

您甚至在自己的代码(即不是或不会成为公共(public) API 的代码)上执行此操作的原因是:

  • 促进单元测试:你可以模拟一个界面,而你不能(或不容易)模拟一个类;和
  • 允许您稍后更改实现而不影响调用代码。
  • 关于oop - 接口(interface)的功能主要是为了使用函数而不知道类是如何构建的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052004/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com