设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 360|回复: 0

Protocol(协议)

[复制链接]
MrLi 发表于 2014-3-12 15:55:49 | 显示全部楼层 |阅读模式
Protocol(协议)
在面向对象的编程中,协议或者接口是让不相关的对象与彼此进行交流的常用方法。这些方法和值的定义是对象商定的,以便合作。
例如,在Java中(协议是术语的接口),在Comparable接口中指定了一个compareTo()方法,它实现了类应该实现的。这意味着一个单独的排序方法,例如,他完成Comparable接口中任意对象的排序,而无需知道任何有关该类的内在性质(除了两个这种对象可以通过compareTo()手段进行比较之外)。
协议的描述如下:
消息是通过对象理解的。
这些消息可以提供参数。
结果的类型是这些消息返回的。
常量是保存修改的为对象的状态。
在特殊情况下,需要由用户去处理对象。
如果对象是完全封装的,那么协议描述的唯一方式是通过其他对象访问该对象。
一些编程语言直接支持协议或者接口(Ada, C#, D, Dart, Delphi, Java, Logtalk, Object Pascal, Objective-C, PHP, Racket, Seed7)。比较旧的语言也有一些特性能够支持接口概念,如抽象基类与C + +中的纯虚函数,或在Perl中的面向对象特性。
尽管Go语言一般认为不是面向对象的语言,它允许方法采用用户定义的类型定义。Go语言有“接口”类型,它兼容任何的类型,此类型支持给定的一系列的方法(该类型不需要明确实现的接口)。空的接口,interface{},兼容任何类型。
需要注意的是函数式编程和分布式编程语言都有一个概念,它也被称为一个协议,但这意味着微妙的不同(换言之,消息交换机制,重点是交换,而不是消息)。该不同是由于函数式编程和面向对象的编程范式的不同假设。具体而言,以下也被视为协议的一部分:
允许消息的序列,
在通讯中,限制放置的任一参与者;
预期效果将出现,作为消息处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-7-17 00:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表