Interface 接口怀疑

Interface 接口怀疑,interface,Interface,接口是对象(不同对象)和动作(不同对象类型尝试执行相同动作)之间的层吗?接口检查它是什么类型的对象,以及它如何执行特定操作?您是在询问特定语言(如Java或Objective-C)中使用的术语“接口”,还是该术语的一般含义 如果是后者,那么“接口”几乎可以是任何东西。把油倒在水上——它们之间的线是一个“界面”。接口是两个独立事物相遇并相互作用的任意点 这个术语在计算中没有严格的定义,但指的是两个相对不同的领域相互作用的任何地方。我认为最好将接口视为承诺。在Java中,接口构造允许继承API,但不

接口是对象(不同对象)和动作(不同对象类型尝试执行相同动作)之间的层吗?接口检查它是什么类型的对象,以及它如何执行特定操作?

您是在询问特定语言(如Java或Objective-C)中使用的术语“接口”,还是该术语的一般含义

如果是后者,那么“接口”几乎可以是任何东西。把油倒在水上——它们之间的线是一个“界面”。接口是两个独立事物相遇并相互作用的任意点


这个术语在计算中没有严格的定义,但指的是两个相对不同的领域相互作用的任何地方。

我认为最好将接口视为承诺。在Java中,接口构造允许继承API,但不指定行为。不过,通常情况下,接口由对象呈现的用于和对象交互的方法组成

在duck类型的语言中,如果一个对象呈现一组特定于特定类的方法(接口),那么该对象就像指定类


接口的实施是复杂的,因为您需要为行为指定一组标准。一个有趣的例子是Eiffel中的契约式设计思想。

要理解.net或Java中的接口,必须首先认识到继承结合了两个概念:

  • 派生类型的实现将包括基类型的所有字段(包括私有字段),并且可以访问基类型的任何和所有公共或受保护成员,就像它是自己的一样。
  • 派生类型的对象可以自由地代替基类型的对象。 允许对象将多个基本类型的成员作为自己的成员使用是复杂的。有些语言提供了这样做的方法,但是对于引用的是基对象的哪一部分,经常会产生混淆,特别是当一个是从两个类继承的,而这两个类分别从第三个类继承时。因此,许多框架只允许对象从一个基础对象继承


    另一方面,允许对象可以替换多个其他类型的对象不会产生这些困难。例如,表示数据库表的对象可以允许将其自身传递给希望“能够枚举类型为T(IEnumerable in.net)”的内容的例程,或者希望“能够向其添加类型为T的内容的对象”(ICollection in.net)的例程,或者希望“想知道何时不再需要它的东西(可在.net中使用IDisposable)“。请注意,有些东西不再需要时需要通知,但它们并不表示可枚举集合,还有一些东西表示可枚举集合,可以在不通知的情况下放弃。因此,两种类型的对象都不能从另一种类型继承,但如果一种类型的对象使用接口来表示“可以枚举其内容的事物,其类型为T”或“希望知道何时不再需要它们的事物”,那么,让类实现两个接口就没有问题了。

    我说的接口通常是计算/编程中的一个概念。那么,两个域可以在任何地方进行交互。它可能是“定义明确的”或“特别的”。在接口处可能会对参数进行严格检查,也可能不进行检查。它可能遵循命名约定、标准返回码等的标准化模式,或者每个单独的函数可能以不同的方式定义。因此,基本上,接口层是监控两个域是否以可接受的方式交互的层?当你说域交互时,这是否意味着对象与对象交互?基本上,“接口”就是你所说的任何东西。任何两个相互作用的对象都可以称为“接口”。“UI”-“用户界面”-是一个“界面”。硬件和软件之间的边界是“接口”。这个论坛是一个“界面”。所以让我们假设有两个对象(员工和客户)试图执行一个操作(订阅)。在这里,员工可以直接订阅,客户需要先付费,然后再订阅。我们有一个接口人员来检查他是什么样的人。Employee和Customer类会有自己的订阅方法吗?这取决于。你有三条路。1) 除了共享一个界面外,员工和客户是不相关的。他们将有自己的方法。2) 一个从另一个继承,或者3)它们从公共基类继承。他们可能有也可能没有自己的方法。如果他们没有继承关系,他们将有自己的方法。那么IPerson也会有subscribe方法吗?它会做什么?怎么做?接口IPerson的Subscribe方法包含什么?因为我们已经为Employee类和CustomerNow类提供了单独的订阅方法,所以我们现在开始讨论语言细节。假设Java(或具有类似接口概念的语言)员工和客户都有自己的订阅方法。IPerson,如果它是Java接口,则只指定签名而不是实现。但是,如果IPerson不是一个类似Java的接口,而是另一个类,那么IPerson subscribe方法将包含您想要的任何内容。谢谢!我理解,对于不同的编程语言,实现接口概念可能是不同的。我试图从总体上理解接口。当您说“将接口看作承诺”时,如果一个类想要实现一个特定的接口,它需要实现什么类型的承诺?你能举个例子更好地理解它吗?