Java 使用DAO作为命令
我需要一个建议,我们正在考虑的设计方法之一 我们正在实现一个JavaWeb服务提供者,它处理关系数据库中的数据。我们建议的课程包括:Java 使用DAO作为命令,java,design-patterns,Java,Design Patterns,我需要一个建议,我们正在考虑的设计方法之一 我们正在实现一个JavaWeb服务提供者,它处理关系数据库中的数据。我们建议的课程包括: IDAO-与execute()方法的接口 GetCustomerDAO和UpdateCustomerDAO实现IDAO DAOFactory—要读取的DAO列表配置文件,该文件具有要为特定服务调用的DAO的映射 ServiceImpl-包含getCustomer、updateCustomer方法。该服务使用DAOFactory获取DAO对象的列表,然后遍历该列表并
请让我知道你的看法,设计是否合适。谢谢我不认为在这种情况下使用命令设计模式有什么好处
1.DAO的思想是提供一个抽象持久性机制的接口。该接口传统上定义CRUD方法。每个DAO具体类通常都会为特定的持久性机制实现DAO接口。这两种实现都可以互换,因为它们实现相同的接口。
2.服务功能可以分为单独的服务层。通常,该层依赖于DAO层(用于持久性)。服务接口可以类似于向潜在客户公开应用程序中实现的业务逻辑(通常是业务层中的逻辑)的外观。示例:
用户DAO界面: public interface UserDao { void save(User user); void delete(User user); void update(User user); User findByUsername(String username); List findAll(); ... } 公共接口UserDao{ 作废保存(用户); 作废删除(用户); 无效更新(用户); 用户findByUsername(字符串用户名); 列出findAll(); ... } 用户服务界面:
public interface UserService { void createUser(String username, String password); boolean loginUser(String username, String password); boolean isUsernameUnique(String username); .... } public class UserServiceImpl implements UserService { private UserDao userDao; public UserServiceImpl(UserDao userDao){ this.userDao = userDao; } ... } 公共接口用户服务{ void createUser(字符串用户名、字符串密码); 布尔登录用户(字符串用户名、字符串密码); 布尔值isUsernameUnique(字符串用户名); .... } 服务实施:
public interface UserService { void createUser(String username, String password); boolean loginUser(String username, String password); boolean isUsernameUnique(String username); .... } public class UserServiceImpl implements UserService { private UserDao userDao; public UserServiceImpl(UserDao userDao){ this.userDao = userDao; } ... } 公共类UserServiceImpl实现UserService{ 私有UserDao UserDao; 公共userserviceinpl(UserDao UserDao){ this.userDao=userDao; } ... }
谢谢你,沃尔特斯。因此,您的建议基本上是在ServiceImpl中直接调用DAO方法。我确实喜欢这种方法。是的。服务层将持久性委托给DAO(使用依赖项注入)。@Walters您能给出一个UserServiceImpl中的一个方法使用的业务层类的示例吗?:)