it_hqk
2016-02-08 02:25
采纳率: 100%
浏览 1.6k
已采纳

关于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条回答 默认 最新

  • 毕小宝 2016-02-08 11:26
    已采纳

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

    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题