示例及项目中接口的作用
学到现在,接触到多个课程中的小项目之后不禁反思,接口在这些项目中到底有什么不可替代的作用呢?很抱歉现在还提出这么初级的问题,我在此以个人角度分析一下优缺点,希望得到老师的回答。
缺点:
1.最初学习接口的时候,记得接口的功能是可以让多个类进行实现,能够让类实现多继承的功能同时方便解耦。可是在课程的小型项目中,一般是一个接口对应一个实现的,比如:DAO里面的增删改查的一个接口对应一个实现,同时Service里面也有。既然每写一个接口同时得写一个实现,继承和耦合方面都不存在问题,那么为何不能省略接口呢?
优点:(部分个人猜测)
1.当写接口的人和实现的人分开的时候,不同的人写不同的部分的代码有利于分工协作。
2.接口只涉及方法不涉及实现,所以一般比较精简,加上简单注释的话,阅读者一眼就能看出接口里面函数的功能,方便阅读。
3.如果要使用SpringAOP进行切面编程,不使用接口的类无法使用JDK动态代理。切面编程的思想应该是通过实现接口的两个平级子类,其中代理类对目标类进行增强。即使是用CGLIB代理,没有接口也得生成目标类的子类来对目标类进行增强。
针对这三个优点,在课程的小型项目中,个人认为优势也不是非常明显。其一,小型项目中基本都是单人完成,需要书写接口的分工协作比较少。其二,项目中Service和DAO之类的都分开了,基本通过一层层的调用,每层的代码本来就比较精简,阅读也比较方便。其三,使用CGLIB进行代理可以解决JDK无法对未实现接口类进行切面编程的问题,同时CGLIB代理类虽然也得生成目标类的子类,但是代码量或者配置并没有增加很多,反而少写了一个接口类。
那么,究竟有什么特别的优势让书写接口成为了项目代码的一种规范呢?还是虽然只是一个小型项目,老师使用的却是大型项目的思维来给我们进行讲解,所以把接口的规范拿过来的呢?
以上是个人的一些见解,希望老师对我个人的分析判断一下正误,同时接口作用的问题希望得到老师专业的答疑解惑!
正在回答
同学你好,关于接口,可以有多个实现类,如果现在你使用这个实现类接收,也许哪一天需要做扩展,这时可以新建一个实现类,继续完成扩展,而原有的功能不做改变。比如说:做了普通计算器程序,突然添加新需求,要再做一个程序员计算器,这时不应该修改普通计算器内部,应该使用面向接口编程,组合实现扩展。
面向接口编程在小项目中的作用不是什么的明显,但是在框架的底层应用是非常广泛的,有利于各功能之间的协作。项目越大它的好处越明显,并且需要工作经验的不断积累,才能够真正体会到它的好处。
祝:学习愉快~
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星