接口是一个收集方法和常数表单的契约。当类执行一个接口,它就许诺声明在那个接口中执行所有的方法。
接口是一个设备或者一个系统,它是用于交互的无关的实体。根据这个定义,远程控制是一个在你和电视的接口;而英语是两个人之间的接口;强制在军事中的行为协议是不同等价人之间的接口。在JAVA语言中,接口是一个设备,它是用来与其它对象交互的设备。一个接口可能对一个协议是类似的。实际上,其它面向对象语言有接口的功能,但它们调用它们的接口协议。
自行车类和它的类分级结构定义了什么是自行车。但是自行车在其它方面与现实世界交互作用,例如,仓库中的自行车可以由一个存货程序来管理。一个存货程序不关心管理项目的哪一类只要项目提供某一信息,比如价格和跟踪数字。取代强迫类与其它无关项的关系,存货程序建立了通讯的协议。这个协议是由包含在接口中的常数和方法定义组成的。这个存货清单接口将要定义(但不执行)方法来设置和得到零售价格,指定跟踪数字等等。
为了在存货清单程序中操作,自行车类必须在执行接口的时候遵守这个协议。当一个了执行一个接口的时候,类遵守定义在接口中的所有方法。因此,自行车将为这些设置和获得零售价格并指定跟踪数值等等的方法提供执行。
你可以使用接口来定义一个行为的协议,这个行为可以有在类分级结构中任何类来执行。接口的主要好处有一下几点:
不用人工强迫类关系在无关类中截获相似处。
声明想执行的一个或者更多类的方法。
在不暴露对象的类的前提下,暴露对象的编程接口。
|
|