¿Cuál debería ser la mejor manera de diseñar una clase DAO?¿Cómo diseñar una clase DAO?
Enfoque # 1:Diseño clase DAO como un objeto.
class Customer {
//customer class
}
class CustomerDAO {
public void saveCustomer(Customer customer) {
//code
}
public Customer getCustomer(int id) {
//code
}
}
//Client code
class client {
public static void main(String[] args) {
CustomerDAO customerDAO = new CustomerDAO();
Customer customer = new Customer();
customerDAO.saveCustomer(customer);
}
}
Enfoque # 2:clase de diseño DAO con métodos estáticos (clase aka estática)
class Customer {
//customer class
}
class CustomerDAO {
public static void saveCustomer(Customer customer) {
//code
}
public static Customer getCustomer(int id) {
//code
}
}
//Client code
class client {
public static void main(String[] args) {
Customer customer = new Customer();
CustomerDAO.saveCustomer(customer);
}
}
En el enfoque # 1, que tiene que crear un objeto de la clase DAO en todo el código del cliente (otra opción es pasar la referencia de DAO por todas partes). mientras que en el enfoque n.º 2, no tengo que crear el objeto y los métodos estáticos se pueden diseñar sin seguimiento del estado.
¿Cuál enfoque es el mejor en diseño de clases DAO?
Uso enfoque # 1 e inyectar referencias usando un contenedor de IOC como Spring –
Es extraño que nadie haya mencionado un tutorial tan agradable e informativo de [BalusC] (http://stackoverflow.com/users/157882/balusc): [DAO tutorial - the dat una capa] (http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html). Léelo y encontrará las respuestas a muchas preguntas relacionadas con el diseño e implementación de DAO. – informatik01