@duffymo: Объяснение DAO идеально, и я не могу его улучшить. Фабричная реализация OP (более или менее) правильно реализует абстрактный шаблон фабрики, поэтому, возможно, вам следует просто удалить эту часть. Извините, я уберу понижающий голос. Я просто немного схожу с ума, когда люди пользуются синглетами;)
звестны фабричные и абстрактные фабричные методы, но я хочу создать фабричный шаблон DAO в Java.
Я хочу знать его важность.Его использованиея проверилэта ссылка но мне трудно это понять.
Кто-нибудь может объяснить это с помощью примера?
Редактировать: Вот пример шаблона DAO, как я понял:
public interface UserDAO {
public void insert(User user);
public void update(User user);
public void delete(int userId);
}
Реализация:
public class UserDAOImpl implements UserDAO {
@Override
public void delete(int userId) {
// delete user from user table
}
@Override
public User[] findAll() {
// get a list of all users from user table
return null;
}
@Override
public User findByKey(int userId) {
// get a user information if we supply unique userid
return null;
}
@Override
public void insert(User user) {
// insert user into user table
}
@Override
public void update(User user) {
// update user information in user table
}
}
Фабрика:
public class UserDAOFactory {
public static UserDAO getUserDAO(String type) {
if (type.equalsIgnoreCase("jdbc")) {
return new UserDAOImpl();
} else {
return new UserDAOImpl();
}
}
}
Код на стороне клиента:
User user=new User();
user.setName("Jinoy P George");
user.setDesignation("Programmer");
user.setAge(35);
//get a reference to UserDAO object
UserDAO userDAO=UserDAOFactory.getUserDAO("jdbc");
//call insert method by passing user object
userDAO.insert(user);
Этот шаблон Дао правильный?
Где я должен открыть соединение и закрыть его?