2 u010114663 u010114663 于 2016.02.08 10:25 提问

关于java中Dao模块接口问题,请教一下原理

BaseDao.java
public interface BaseDao {}

BaseDaoImpl.java
public abstract class BaseDaoImpl implements BaseDao {}

UserService.java
public interface UserService extends BaseDao{}

UserServiceImpl.java
public class UserServiceImpl extends BaseDaoImpl implements UserService {} //User就不粘出来了

我想问下,为什么UserService这个接口还要继承一下BaseDao接口?UserServiceImpl不是继承了BaseDaoImpl了嘛,基础操作都有了。不继承也没有什么影响呀? 请知道的大神给说下原理。

4个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.08 19:26
已采纳

首先BaseDao抽象的是所有共有的操作,UserService抽象的是用户操作相关方法,对应的实现类也有相同的继承体系 UserServiceImpl继承BaseDaoImpl,这是设计模式的一种,好像是bridge模式;此外从面相解决编程的角度, UserService继承 BaseDao的话,那么 UserServiceImpl这个类实例也是 BaseDao类型,注入 BaseDao类型时可以使用 UserServiceImpl。

Yiran8935
Yiran8935   2016.02.08 15:45

一般都是在service里面直接注入dao就行了的、这个写法有点怪

Yiran8935
Yiran8935   2016.02.08 15:46

可能这个service是虚拟类、要实现未实现的方法

u010114663
u010114663   2016.02.08 17:33

感谢回答,但是感觉楼上回答的不是太合理。这种代码风格一般在视频和老师那里看到的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
问题请教工程,问题请教工程
问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,
问题请教高手
问题请教高手问题请教高手
MVC三层架构+DAO工厂模式进行JAVA WEB开发
MVC三层架构+DAO工厂模式进行JAVA WEB开发
利用Java反射实现万能DAO
利用Java的反射机制实现的万能DAO工具类,包含对应的测试代码。具体功能包括:单表查询,多表查询,模糊查询,添加,修改,删除等。利用万能DAO可以对数据库中任意表进行操作,只需一个DAO类即可完成。阅读本代码需要掌握Java反射机制以及数据库DAO类基础。
java 里 自动生成 dao 工具的代码
此代码用于java web 开发,把 对应的包加入后,可以自动生成dao层代码。
java 问题请教
树获取到表格
Java中DAO模式的设计与实现
在JAVA编程的时候, 有时候看起来非常直接的实现却非要用设计模式转若干个弯去实现他, 这似乎显的很多余,但是采用一些成熟的设计模式,会使程序更加的健壮,松耦合以及好维护和扩展.
java 自动生成代码 entity,dao,service
对于经常写重复性代码的entity,dao,service,本例子中写了一个简单的自动生成小程序,有需要者可以下载
java连接mysql数据库及简单操作dao
java连接mysql数据库及简单操作dao 实现了,增删改查,数据库sql文件在内,导入即可。可根据需要修改
mongoDB DAO层封装
基于mongoDB3.0 和spring data1.5 整合的dao层封装