如何解决我的 UserFactory 填充数据是否违反了 DRY?
我正在执行采用 RegisterUserService
参数的 request
,并在验证后通过将 newUser
发送到 UserFactory 类的 request
方法来创建 fillNewUser()
。但问题是,在 fillNewUser()
方法中,我必须再次从请求中获取所有参数。是否违反 DRY?
public class RegisterUserService {
private final UserFactory userFactory = UserFactory.getInstance();
public void execute(HttpServletRequest request,HttpServletResponse response) throws servletexception,IOException,sqlException {
HttpSession session = request.getSession();
Requestdispatcher dispatcher;
Boolean isAllOkWithEmail = false; //just for example
Boolean isAnotherParameterChecking = false; //just for example
String email = request.getParameter(USER_EMAIL).trim();
String login = request.getParameter(USER_LOGIN).trim();
String password = request.getParameter(USER_PASSWORD).trim();
// here I am validating request parameters
if (!isAllOkWithEmail) {
// displaying errors
} else if (!isAnotherParameterChecking) {
// checking and displaying errors
} else {
/// filling new registered User with UserFactory for Single Responsibility
User user = userFactory.fillNewUser(request);
userDAO.insert(user);
session.setAttribute(USER,user);
dispatcher = request.getRequestdispatcher(INDEX_JSP);
dispatcher.forward(request,response);
}
}
我的用户工厂:
public class UserFactory {
private static UserFactory instance = new UserFactory();
private UserFactory() {
}
public User fillNewUser(HttpServletRequest request) {
User user = new User();
// Writing here same code and violating DRY????
user.setEmail(request.getParameter(USER_EMAIL).trim());
user.setLogin(request.getParameter(USER_LOGIN).trim());
user.setPassword(request.getParameter(USER_PASSWORD).trim());
return user;
}
public static UserFactory getInstance() {
return instance;
}
}
或者有更好的解决方案吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。