我在我的应用程序中使用Dao
模式,我试图像这样使用泛型Dao:
interface IDao<I,T>{
// CRUD operation
}
abstract class AbstractDaoImpl<I, T> implements IDao<I, T> {
// reusable method
}
interface UserDao extends IDao<Integer,User>{
// special method for UserDao
}
class UserDaoImpl extends AbstractDaoImpl<Integer,User> implements UserDao {
}
请注意UserDaoImpl
它实现UserDao
(从IDao
扩展)本身,同时扩展AbstractDaoImpl
也实现了IDao
,这使我成为{{1}}虽然接口有重复的实现。
我想知道这是否会引起任何潜在的问题?因为我不确定这是否是Java中可接受的做法。
答案 0 :(得分:0)
不,这不会导致问题,因为接口不包含任何实现(至少在使用Java 8默认方法之前)。
Java不仅可以接受,而且通常的做法是分解出一般接口,只在必要时进行专门化。