Điều gì sẽ là cách tốt nhất để thiết kế một lớp DAO?Làm thế nào để thiết kế một lớp DAO?
Approach # 1:Thiết kế lớp DAO như một đối tượng.
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);
}
}
Cách tiếp cận # 2:lớp Thiết kế DAO với các phương pháp tĩnh (lớp aka tĩnh)
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);
}
}
Trong phương pháp # 1, tôi phải tạo một đối tượng của lớp DAO trong tất cả các mã khách hàng (tùy chọn khác là để vượt qua các tài liệu tham khảo của DAO tất cả các xung quanh). trong khi tiếp cận # 2, tôi không phải tạo đối tượng và các phương thức tĩnh có thể được thiết kế mà không theo dõi trạng thái.
Vậy cách tiếp cận nào là tốt nhất trong thiết kế các lớp DAO?
Sử dụng phương pháp # 1 và tiêm tham chiếu đến nó sử dụng một container IOC như Spring –
Thật lạ khi không ai đề cập đến một hướng dẫn tốt và thông tin như vậy bởi [BalusC] (http://stackoverflow.com/users/157882/balusc): [DAO tutorial - the dat một lớp] (http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html). Đọc nó và bạn sẽ tìm thấy câu trả lời cho nhiều DAO thiết kế và thực hiện các câu hỏi liên quan. – informatik01