虽然了解接口的含义及作用,但是在实际应用中一直想不通:SSH框架中Service层和DAO层中的接口类有什么实际作用?
如果需求变更小,不需要修改方法名、参数列表和返回值,那么修改实现中的方法就不会影响其他地方的调用,跟有没有接口无关。
如果需求变更大,需要修改方法名、参数列表和返回值,那么就需要先改接口,再改实现,这种情况下其他地方的引用也会受到影响,也跟有没有接口无关。
这样的话接口岂不是没有起到什么作用吗?反而很累赘的感觉
望有经验的高手介绍一下,最好能举个实际的例子,谢谢!!SSH接口面向接口面向接口变成

解决方案 »

  1.   

    LZ理解完全正确,修改函数签名,的确需要你重新修改接口和实现类,面向接口设计并不是简单的方法,而是将一间事物进行抽象,通过接口表达出来,没有实现的情况下,面向接口是让程序进行解耦,在所谓的SSH,服务层DAO都是用接口来表达目的不在于修改函数签名的时候带来方便,而是在替换持久层,迁移业务代码到分布式系统中使用,其增强的是系统的横向扩展能力,而不是纵向的
      

  2.   

    简单说下:以spring为例,ioc和aop,ioc后 就一定得是aop的思想,为什么呢我们的实例类是在配置文件中,代码中直接getbean();利用反射生成对象实例赋值给一个变量那么赋值给的这个变量类型是在代码中写的,如果不是个接口或者抽象类型,而是具体实例,那么后续你把配置文件中的实例换掉了,在不改代码的情况下,就类型错误了。。总的来说:为了满足后续只增加代码,改配置文件,而不是改原来的代码。这样系统原有改动少,减少了出错的几率。