日期:2014-05-20  浏览次数:20750 次

为什么一定要使用接口呢?
刚毕业,刚做了2个项目,但是我一直没明白为什么一定要放一个接口呢?比如在service层里面,明明都是每个对象对应一个操作的service类,但是为什么非要每个类都写一个接口呢?也没有别的类来继承这个接口啊?目前没有发现其他什么好处,请大牛指导谢谢。。。。

------解决方案--------------------
为了以后的扩展,多态知道吧
------解决方案--------------------
慢慢慢慢地就知道了:)。但是一般中小项目确实感受不到
一般来说2个作用
1、为了将来扩展,因为实现接口的方法可能不一样。比如可能同一个持久化数据方法接口要对应不同的数据库,那么切换数据源只需要在配置文件里切换实现类即可,接口另一头的人代码不受影响,因为业务接口没有变,变的是存储终端。
2、对于一个稍大的项目,有时一个业务流程方法较多,而且需要两边人配合,各自实现各自的编码部分。但开始没有想好两边最终的实现技术方案(比如不知道对方用嘛数据库)。为了规范大家的业务操作方法,你要制定一些业务规则,于是你写了一堆接口方法,告诉两边的人,你们以后就实现这个接口,操作业务数据都必须用里面的方法。于是,在编译一级(注意是编译一级,想想这句话的意义。)他们必须遵守这些接口方法,不会自己随便乱写,如果他们发现方法不够或者有问题,你就及时调整,两边向你对齐!
3、还有,纯技术上。接口可以多继承,这样有利于你后期【增加】功能,而不会影响以前的代码结构。

时间有限,随便一写,就是个意思。楼下继续补充。
------解决方案--------------------
眼前可能用不上,保不准以后会派上用场的,写东西也要有前瞻性
------解决方案--------------------
熟悉一下Spring就知道接口干吗的了?
------解决方案--------------------
接口就是标准,是用来隔离具体实现的(或者说是和具体实现解耦)。举个生活中的例子就是:各种手机、移动硬盘等连接上上的USB接口就是标准,大家各自制造自己的具体产品。产品使用者和提供者都遵守这个标准,那么使用者就不必担心自己电脑上的USB接口是否只能插移动硬盘而不能插手机。再打个比方,网络上的各种协议,比如HTTP协议,只要客户端和服务端都遵守这个协议,那么无论是用火狐狸浏览器还是用IE,也或者是360浏览器,都可以访问,不用担心服务端发过来的信息,浏览器解析不了。回到主题,程序接口的使用就将使用者和服务提供者之间进行了解耦,只要实现着遵守这个接口来做实现,使用者就不必担心具体的实现代码怎么写的。当然了如果再深究其实没有这么简单,比如实现要遵守“里氏替换原则”等,如果楼主有兴趣,可以去研究下《敏捷软件开发原则》。希望上边说的东西,能帮楼主理解,多多交流,呵呵呵。
------解决方案--------------------
就是因为你现在写的还少
有时间看看struts2的原理 源码 你就知道接口有什么好处了

struts2 主要就是一个核心控制器 那我们写的action只不过是他的一个小的控制器 处理一些事务.这时你就要知道 核心控制器就相当于一个项目经理 
公司现在接了一个项目 交给了项目经理.
项目经理一看 这个可以由你的小组完成 那个由那个小组来完成.
这里的项目经理是分配任务的 就是核心控制器做的事 他具体做的时候就是看这个接口 判断action类是否实现了这个接口 要是实现了 这个接口有的方法 这个action的具体实现方法都有.然后根据他的名字来分配任务的.