¿Cuál es el patrón de fábrica DAO?
Conozco los métodos de fábrica y de fábrica abstracta, pero quiero crear un patrón de fábrica DAO en Java.
Quiero saber su importancia. Su usoHe comprobadoeste enlac pero me cuesta entenderlo
¿Alguien puede explicarlo con la ayuda de un ejemplo?
Editar Aquí hay un ejemplo del patrón DAO como lo entendí:
public interface UserDAO {
public void insert(User user);
public void update(User user);
public void delete(int userId);
}
Implementación
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
}
}
Fábrica
public class UserDAOFactory {
public static UserDAO getUserDAO(String type) {
if (type.equalsIgnoreCase("jdbc")) {
return new UserDAOImpl();
} else {
return new UserDAOImpl();
}
}
}
Código del lado del cliente:
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);
¿Es correcto este patrón de dao?
¿Dónde debo abrir la conexión y cerrarla?