协议 (面向对象编程)
协议(英語:Protocol)是特定面向对象编程语言使用的术语,具有各种特殊含义,在其他语言中可能称为接口或trait。 概述协议指示着在调用者和对象之间的交互链,在其他方面都类同于通信协议。使用术语“协议”的语言包括:Clojure、Elixir、Java 8、Logtalk、Objective-C[1]、Smalltalk-80、Swift、Python[2]。 在这些语言中,协议是离散的对象相互通信的常用方式。为了进行协作,将这些对象一致认可的方法和值的定义,作为API的一部份。协议/接口描述了:
如果对象是完全封装的,则协议将只描述对象能被其他对象访问的方式。例如Java中的接口, 一些编程语言提供对协议/接口的显式的语言支持:Ada、C#、D、Dart、Delphi、Go、Java、Logtalk、Object Pascal、Objective-C、PHP、Racket、Seed7、Swift。在C++中接口叫做抽象基础类,并被使用纯虚函数实现。Perl中的面向对象特征也支持接口。 非面向对象语言尽管Go编程语言一般不被认为是面向对象语言,它允许在用户定义类型上定义方法。Go有“接口”类型,兼容于支持给定方法集合的任何类型(这个类型不需要显式的实现这个接口)。空接口 注意函数式编程和分布式编程语言使用术语协议类似于通信用法(比如允许消息交换的规定强调了交换而非消息)。特别是在这些语言中如下这些被认为是协议的一部份:
在语言如Haskell中的类型类被用来干协议所作的很多事情。 参见引用
|
Portal di Ensiklopedia Dunia