协议(面向对象的编程)

面向对象的编程, 一个界面或者协议类型[a]是一个数据类型描述一组方法签名,其实现可能由多个课程否则不一定彼此相关。[1]提供协议中列出的方法的类采纳协议,[2]或者实施接口。[1]

如果对象完全封装然后,该协议是其他对象可以访问它们的唯一方法。例如,在爪哇, 这可比界面指定方法相比于()哪些实施类必须实施。这意味着,例如,一种分类方法可以对实现可比接口的任何类型对象进行分类,而无需了解类的内在性质(除了可以通过使用这些对象的两个对象。相比于())。

一些编程语言为协议提供明确的语言支持(艾达C#d德尔菲爪哇logtalk对象PascalObjective-COCAMLphp球拍种子7迅速)。在支持语言中多元继承, 如C ++,接口被实现为抽像类.

在没有明确支持的语言中,协议通常仍然作为约定。这被称为鸭打字。例如,在Python,任何班级都可以实现__ITER__方法并用作收藏.[3]

类型类在类似的语言中哈斯克尔,或模块签名MLOCAML,用于协议用于的许多内容。[需要澄清]

也可以看看

笔记

  1. ^这些术语的使用因编程语言而异。Java和从其衍生而来的语言倾向于使用“接口”,而“协议”通常在其他地方更受欢迎。

参考

  1. ^一个b“接口 - 定义多种类型的行为”.Learn.microsoft.com。检索11月16日2022.
  2. ^Miller,BJ(2015)。萨姆斯在24小时内自学迅速。印第安纳州印第安纳波利斯。p。263。ISBN 978-0-672-33724-6.任何类型都可以采纳一种协议,以帮助其额外的功能来完成一组特定的任务。
  3. ^“词汇表 - Python 3.11.0文档”.docs.python.org。检索11月16日2022.