A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段郎 中级黑马   /  2014-4-29 11:41  /  1594 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本人应届生一枚,在学校和大多数人一样,久仰接口大名,也知道一些规则,但是由于缺少公司的实际开发经验,感觉自己对接口总是掌握的不好,听老师还有视频、书上面说过接口是定义了规则,通过接口把一个项目按功能分为了小模块,之后的代码就是实现这些接口。我感觉接口可以做得很高端,因为它可能是系统架构的重要组成成分。我现在就这些理解,我感觉还是只知道一点皮毛,请哪位大牛为我解答一下,接口的重要性,以及在实际开发中的重要性,以及对开发者来说未来的发展掌握接口开发是不是必备的。谢谢啦

6 个回复

倒序浏览
两个7k面试题的视频中都讲到了,自己看看。还是跟程序扩展性有关吧
回复 使用道具 举报
我记得我曾经在一篇帖子中提到过,一个接口可以从三方面去考察:
制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)。

接口本质上就是由制定者来协调实现者和调用者之间的关系。

所以通常说的“面向接口编程”可以理解为:
只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到。

一个老生常谈的例子就是JDBC。

很多人费解:既然我每连接一种数据库(如mysql)都要事先部署驱动程序,那我直接访问驱动程序不就行了?还要JDBC干吗?

实际上,JDBC已经起了至关重要的作用了:正因为驱动程序是按照JDBC所规定的方法编写的,你才可以按照JDBC的方式去使用。
换句话说,如果驱动程序提供者不按照JDBC标准来编写,而是按它自己独创的方式编写,那么你在使用驱动程序的时候就要花时间查看驱动程序的文档以搞清楚用法。而当你日后决定使用另一种数据库的时候,这种数据库的驱动程序也不是按照JDBC编写的,你又得去搞清楚另一套完全不同的用法,而你的所有代码都必须做相应的更改。这种代价是不可想象的。

而现在的情况是,驱动程序提供者都按照JDBC规定的方式来编写,程序员都按照JDBC规定的方式来使用。程序员不用关心自己正在使用何种数据库,而驱动程序编写者也不用费尽心力去编写接口文档来向程序员解释驱动程序的用法,大家都向标准看齐就行了。

现在,你觉得面向接口编程的好处还不明显吗?

当你正在你的键盘上打字的时候,你是否想到,你在学校就学会了的打字方法至今还在用,因为所有计算机键盘的布局都是一样的。
这时,你会不会由衷地感激这个设计键盘布局的人呢?正是他让你只要学会一种打字方法就可以用在所有计算机的键盘上。

评分

参与人数 1技术分 +1 收起 理由
轻语。 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
﹊佑雨时杰↘ 发表于 2014-4-29 13:14
我记得我曾经在一篇帖子中提到过,一个接口可以从三方面去考察:
制定者(或者叫协调者),实现者(或者叫 ...

讲的很好,举例子很易懂,谢谢。
回复 使用道具 举报
学习了。。
回复 使用道具 举报
接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法,其方法都是抽象方法。他的用处主要体现在下面几个方面:1、通过接口实现不同相关类的相同行为,而无需考虑这些类的关系,例如汽车属于燃油类,又属于交通工具类。2、通过类接口指明多个类需要实现的方法。3通过接口了解对象的交互界面,而无需了解所有对应的类。
一个类可以实现多个接口,其实就相当于c++中的多继承。
回复 使用道具 举报
水竹 中级黑马 2014-4-30 00:48:05
7#
我的理解,接口就是定义了一组规范,一组标准。比如在团队开发当中,很多人分工合作,每个人负责项目不同部分的具体实现代码,当项目很复杂的时候,如果是传统的开发方法就有可能产生混乱。所以进行系统分析的时候就要先定义好了接口,为每个部分的行为制定规范,这样无论每个人的具体编码是怎么实现的,只要符合了这些规范,就能够组合在一起。
比如USB接口,所有USB设备都有四个触点,两个供电,两个传输数据,而只要你的设备实现了USB接口,不管是鼠标、还是U盘,就都能够正常的工作了,不是很好么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马