【发布时间】:2011-09-18 02:17:57
【问题描述】:
我知道工厂和抽象工厂方法,但我想在 Java 中创建一个 DAO 工厂模式。
- 我想知道它的重要性。
- 它的用法
我查过this link,但我很难理解。
谁能通过例子解释一下?
编辑:这是我理解的 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);
这个道模式正确吗?
我应该在哪里打开和关闭连接?
【问题讨论】:
-
您的
MammalsFactory创建SQL和Oracle?有趣;) -
您是否已经检查了java.sun.com/blueprints/corej2eepatterns/Patterns/… 上“使用抽象工厂模式”部分中的示例代码?
-
是的,但我无法理解...
-
假设你有一些
Database、sql和oracle的实现,你已经成功实现了抽象工厂方法模式。你只需要弄清楚如何将sql和oracle实现为DAO。 -
您的新实现看起来不错。至于连接,DAO 本身可能不应该控制它。工厂应该,或者用户应该。这样你就可以在 DAO 之间共享连接。
标签: java design-patterns dao