设计模式建议将不胜感激;我需要得到以下2个细节:Java方法设计模式
1)认证结果(真,假) 2)需要更新密码(真假)
没有为上述2个条件一个SQL查询。
我应该用2个单独的SQL查询编写两个单独的方法吗?
还是1方法?如果使用1方法,它将是一个HashMap,它看起来不太优雅。
设计模式建议将不胜感激;我需要得到以下2个细节:Java方法设计模式
1)认证结果(真,假) 2)需要更新密码(真假)
没有为上述2个条件一个SQL查询。
我应该用2个单独的SQL查询编写两个单独的方法吗?
还是1方法?如果使用1方法,它将是一个HashMap,它看起来不太优雅。
我会使用一个POJO:
public class LoginState implements Serializable {
private boolean isLoggedIn;
private boolean isUpdateRequired;
public LoginState() {
this(false, false);
}
public LoginState(boolean isLoggedIn, boolean isUpdateRequired) {
this.isLoggedIn = isLoggedIn;
this.isUpdateRequired = isUpdateRequired;
}
// getters and setters
}
然后,你可以写一个方法返回该POJO,其中将包括两条信息。此外,它很容易扩展,所以如果你想添加可以通过单个调用返回的附加信息(例如,最后一次登录时间或IP),只需将这些字段添加到POJO而不必更改太多其他信息。
分开这两个功能。它更具可读性并且更具可扩展性。
例如,如果稍后您希望人们每6个月更新一次密码,会发生什么情况?你可以调用“require_password_update”函数而不用处理认证的开销。
其实这取决于。两次运行相同的查询肯定比较慢。特别是如果两个值都来自相同的请求。 –
返回将有两个或更多属性(认证结果,更新密码等)的对象。
创建一个类,如:
public class AuthenticationResult {
private boolean authenticated;
private boolean mustChangePassword;
// getters and setters
}
然后从你的身份验证方法返回此对象。
你到底在问什么?而SQL查询又如何适应这一点? – Jochen
“设计模式”是一种表达方式。 –