示例及项目中接口的作用

示例及项目中接口的作用

学到现在,接触到多个课程中的小项目之后不禁反思,接口在这些项目中到底有什么不可替代的作用呢?很抱歉现在还提出这么初级的问题,我在此以个人角度分析一下优缺点,希望得到老师的回答。

缺点:

1.最初学习接口的时候,记得接口的功能是可以让多个类进行实现,能够让类实现多继承的功能同时方便解耦。可是在课程的小型项目中,一般是一个接口对应一个实现的,比如:DAO里面的增删改查的一个接口对应一个实现,同时Service里面也有。既然每写一个接口同时得写一个实现,继承和耦合方面都不存在问题,那么为何不能省略接口呢?

优点:(部分个人猜测)

1.当写接口的人和实现的人分开的时候,不同的人写不同的部分的代码有利于分工协作。

2.接口只涉及方法不涉及实现,所以一般比较精简,加上简单注释的话,阅读者一眼就能看出接口里面函数的功能,方便阅读。

3.如果要使用SpringAOP进行切面编程,不使用接口的类无法使用JDK动态代理。切面编程的思想应该是通过实现接口的两个平级子类,其中代理类对目标类进行增强。即使是用CGLIB代理,没有接口也得生成目标类的子类来对目标类进行增强。

针对这三个优点,在课程的小型项目中,个人认为优势也不是非常明显。其一,小型项目中基本都是单人完成,需要书写接口的分工协作比较少。其二,项目中Service和DAO之类的都分开了,基本通过一层层的调用,每层的代码本来就比较精简,阅读也比较方便。其三,使用CGLIB进行代理可以解决JDK无法对未实现接口类进行切面编程的问题,同时CGLIB代理类虽然也得生成目标类的子类,但是代码量或者配置并没有增加很多,反而少写了一个接口类。

那么,究竟有什么特别的优势让书写接口成为了项目代码的一种规范呢?还是虽然只是一个小型项目,老师使用的却是大型项目的思维来给我们进行讲解,所以把接口的规范拿过来的呢?

以上是个人的一些见解,希望老师对我个人的分析判断一下正误,同时接口作用的问题希望得到老师专业的答疑解惑!


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,关于接口,可以有多个实现类,如果现在你使用这个实现类接收,也许哪一天需要做扩展,这时可以新建一个实现类,继续完成扩展,而原有的功能不做改变。比如说:做了普通计算器程序,突然添加新需求,要再做一个程序员计算器,这时不应该修改普通计算器内部,应该使用面向接口编程,组合实现扩展。

面向接口编程在小项目中的作用不是什么的明显,但是在框架的底层应用是非常广泛的,有利于各功能之间的协作。项目越大它的好处越明显,并且需要工作经验的不断积累,才能够真正体会到它的好处。

祝:学习愉快~


  • 向远之航 提问者 #1
    也就是老师讲课是以小见大,讲授的是大型项目中使用接口的规范是吧?
    2020-05-06 21:40:27
  • 好帮手慕阿满 回复 提问者 向远之航 #2
    是的。祝:学习愉快~
    2020-05-07 09:36:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师