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了嘛,基礎操作都有了。不繼承也沒有什麼影響呀? 請知道的大神給說下原理。
首先BaseDao抽象的是所有共有的操作,UserService抽象的是用戶操作相關方法,對應的實現類也有相同的繼承體系 UserServiceImpl繼承BaseDaoImpl,這是設計模式的一種,好像是bridge模式;此外從面相解決編程的角度, UserService繼承 BaseDao的話,那麼 UserServiceImpl這個類實例也是 BaseDao類型,注入 BaseDao類型時可以使用 UserServiceImpl。