开发者社区> 问答> 正文

关于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了嘛,基础操作都有了。不继承也没有什么影响呀? 请知道的大神给说下原理。

展开
收起
蛮大人123 2016-05-31 14:13:31 2321 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

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

    2019-07-17 19:21:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载