mybatis 为什么的 dao 为什么试用接口啊?这样子做的好处或者目的是什么啊?

2015-11-23 22:55:08 +08:00
 hxlx
3401 次点击
所在节点    程序员
4 条回复
hxlx
2015-11-23 22:55:39 +08:00
mybatis 的 dao 为什么使用接口啊?这样子做的好处或者目的是什么啊?
loshine1992
2015-11-23 23:00:13 +08:00
减少大量重复的代码,由代理对象实现,开发者专注写 sql 就可以了。。
hxlx
2015-11-23 23:09:22 +08:00
@loshine1992 初学者表示不懂啊,为什么这样子就可以减少重复的代码啊?什么代理对象啊?不用接口,开发者就不能专注写sql了吗??请原谅我的无知
Gonster
2015-11-23 23:18:25 +08:00
@hxlx 只写 mybatis xml mapper ,你觉得没有接口你怎么调用它呢?

接口不变可以用不同的实现,更换 mybatis dsl 的 XML mapper ,接口不变上层不受影响。还有就是有接口 mybatis 做 auto-proxy 比较方便吧。

另外如果感兴趣的话可以考虑看一下 https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/binding/MapperProxy.java
一些源码实现,想想你只写了接口和 xml ,你怎么能够通过调用接口就能使用到你没有写的 java 实现类,具体关键字应该是 auto proxy 还有字节码生成, jdk 反射包下有一套实现。还有一些其他的比如用 cglib 和 javassist 的实现等等。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/238372

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX