【发布时间】:2013-11-07 19:22:35
【问题描述】:
设计 DAO 类的最佳方式应该是什么?
方法#1: 将 DAO 类设计为对象。
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);
}
}
方法#2: 使用静态方法设计 DAO 类(又名静态类)
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);
}
}
在方法#1 中,我必须在所有客户端代码中创建一个 DAO 类的对象(其他选项是传递 DAO 的引用)。而在方法#2 中,我不必创建对象,并且可以设计静态方法而无需状态跟踪。
那么哪种方法是设计 DAO 类的最佳方法?
【问题讨论】:
-
使用方法#1并使用像Spring这样的IOC容器注入对它的引用
-
奇怪的是,没有人提到BalusC:DAO tutorial - the data layer 提供的这么好的和内容丰富的教程。阅读它,您将找到许多与 DAO 设计和实现相关的问题的答案。
标签: java