【发布时间】:2011-04-28 21:34:30
【问题描述】:
我将为我的应用程序设计一个 DAO 层。我的重点是服务只调用独立于底层实现的 DAO。
public interface GenericSearchDao{
List getAll();
List getByQuery(String query);
}
public class UserJdbcSearch implements GenericSearchDao{
public List getAll(){
// Get all users;
}
List getByQuery(String query){
// Get users by query;
}
}
public class UserFileSystemSearch implements GenericSearchDao{
public List getAll(){
// Get all users from file system;
}
List getByQuery(String query){
// Get users by query[this leads to invalid operation];
}
}
public userService {
private GenericSearchDao dao = new UserFileSystemSearch();
public List getUsers(){
rturn dao.getAll();
}
public List getByQuery(String query){
return dao.getByQuery(query);
}
}
需要帮助:
我应该怎么做才能摆脱“getByQuery(query)”的具体实现,因为数据存储可以是 RDBMS、文件系统、FTP 等。
我应该如何设计我的 Dao 层?
如果有人说“从 GenericSearchDao 中删除 getByQuery()”,那么如果我需要特定于业务运营的数据,例如:具有角色的用户、具有产品的用户等,我应该怎么做。
【问题讨论】:
-
复制粘贴错误!
Stirng.