日期:2014-05-19  浏览次数:20607 次

面向接口编程困惑
小弟工作也有两年多了,最近正在搭建公司的一个框架,目前剩下的问题就是用不用接口。可能是之前做的项目不是非常大,也有可能是工作中没有细心观察,至今没有感受到接口编程带来的好处。在开发中没有出现过“看,这就是使用接口带来的好处”或者是“幸好这个地方是用接口实现的,要不就惨了”。
  
  相反,使用接口感觉到的只是种种不便,一直纠结于写接口,然后写实现类----因为很少有项目能在开发之前完完全全设计好接口,剩下的工作就是实现。
   
  有没有人能说几个应用场景充分阐述一下必须使用接口,使用普通类会带来很多麻烦?为了节省大家的时间,请不要说笼统的说使用接口带来的好处,这些网上都有,大部分开发人员也知道。

------解决方案--------------------
探讨

引用:

引用:
相反,使用接口感觉到的只是种种不便,一直纠结于写接口,然后写实现类----因为很少有项目能在开发之前完完全全设计好接口,剩下的工作就是实现。

非常赞同啊~!! 也许是我们设计能力不够吧。

举个例子吧。 JDBC驱动你用过吧? JDBC其实大多是实现了sun的JDBC接口的实现类。
你发现你爽伐? 不过是Oracle还是mysq……

------解决方案--------------------
可以想想,这种分工下,如果没有接口,我写Service的时候,我如何去调用DAO层的?我根本不知道你实现我要的数据的方法名是什么,参数是如何定义的,返回值又是什么,那么我得去问你,我一天可能要用几十个方法,我能每个都问你吗?我今天问了你,你说XXX(String,int),回头你自己觉得不对,应该是XXX(Map),那调用的人怎么办

而有了接口,我就可以调用了,而实现接口的人,也是固定的,你根本不用管我到底要做什么用,你只管按照接口上的定义,实现内容即可。很方便,效率非常高。

至于什么接口实现的替换什么的,我只能说,这种在实际中,很少用到,就上面说的,最多也就是做一些大的平台会用到,做一个接口,返回关键数据给外部系统什么的,一般小点的项目是用不着到的。理论很丰满,现实很骨感,实现就是在我们国内,大多数的项目,接口的作用就2类
一种是平台型的,要提供外部系统数据用的
一种就是分工方便的