Я использую Dao
шаблон в моем приложении, и я попытался использовать общий Dao так:реализация интерфейса в Java
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
, что делает I, хотя существует дублирующая реализация для интерфейса.
Интересно, может ли это вызвать любую потенциальную проблему? Потому что я не уверен, что это приемлемая практика на Java.
Это нормально, как вы это сделали. –