接口写出来的作用
老师 请问为什么要写这个接口呢?直接写实现不行么?为什么要多一部继承呢? service的实现类能直接new dao的实现类 那要接口干啥啊? 还有为什么不是通过接口来传递数据呢? 接口不就是打开一个传输通道么?
正在回答 回答被采纳积分+1
同学你好, 以下老师写的有点多,还请同学耐心读一下。
同学是否是疑惑,为什么要这样写?
而不是这样写是吗?:
同学其实可以想一下,在实际开发中,我们总说,对外暴露接口,而不是对外暴露具体的实现类。
我们的目的是,让用户通过接口去调用方法就好了,他不用管我们如何去实现。
上边的这种写法,就是给了用户一个接口,你无需关心我这个实现类Impl 里是怎么实现的,我告诉你,你调用这个findAll方法,能获得这个所有的Category 就行。
我这会儿可能写了一个CategoryServiceImpl (); 去实现。明天,我又想出一个方案来,我写了个CategoryServiceImpl01 (); 这个时候,我直接把接口的实现类换成CategoryServiceImpl01 ()就可以了。学生还是用categoryService去调用方法,无需理会我是否把实现类给改了。
而此时,同学可能会说,我直接不改变量名,改成下图这样不就行啦?:
但是,这个实现类你并没有实现接口,你可以随意写,万一你把某个方法名字改了呢?这样就有可能报错了。
再举个例子:
如果你在盖一个房子,你找了一个包工头。你和他说,我不管你找谁,我就要一个什么什么样的房子。包工头(接口)就去给你找人来盖了。可能是张三(实现类),可能是李四(实现类);
这样你就面向的是包工头这个接口就好了。
而如果你是只有实现类,那就得你自己找了张三,你对接的是张三。你调用方法的时候,你还得关心他会啥,它会不会干泥瓦匠的活儿呀,他会不会贴瓷砖啊。等等,如果中途你发现不行,你还得再找李四。那李四有没有之前张三哪些个技能啊,你都得关心。
所有,我们要用接口去调用方法。如果非要用实现类,也是可以完成的。
因为,这里设计的项目没有那么复杂,所以看不出来,如果一定项目变的庞大,那么接口的优势就体现出来了,你就关心接口有什么方法,能返回什么数据就可以了。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学你好!
1. 这是面向接口编程的体现,也是现在开发中经常使用的,比单独使用类有很多好处。比如:你定义了一个类,某一天发现这个类需要扩展新功能,但是其他地方还使用它,这样修改维护就很麻烦了。但是,如果使用接口,那么只需要在接口中添加功能,比如写一个方法,然后再重新写一个接口的实现类就可以了。调用的时候,接口的引用就指向了新完成的实现类。
2. 接口化的编程为的就是将实现封装起来,然而调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想;这样做的目的可以降低维护成本,且方便以后扩展,随着你代码量的增加,对编程的更多接触就可以对这些内容有了更深层次的认识了。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星