Java 用户类操作实现:接口与单元测试
使用接口思想实现用户类的操作
需求: 对用户类的操作,包括添加用户(注册功能)、查找用户(登录功能)、修改用户(重置密码)等
思路:
- 定义用户类的 JavaBean:User(用户名、密码、确认密码,生日)
- 定义接口:用户操作接口(IUserDao) 包含添加用户(注册功能)、查找用户(登录功能)、修改用户(重置密码)三种抽象方法
- 定义实现接口类:UserDaoImpl,重写三个抽象方法,其中的登录功能可以参考实验五来完成。
- 定义测试类(TestUser):编写单元测试来测试三种功能的操作。
代码示例:
- 用户类的 JavaBean:User
public class User {
private String username; // 用户名
private String password; // 密码
private String confirmPassword; // 确认密码
private String birthday; // 生日
// 构造方法
public User(String username, String password, String confirmPassword, String birthday) {
this.username = username;
this.password = password;
this.confirmPassword = confirmPassword;
this.birthday = birthday;
}
// getter 和 setter 方法
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
- 用户操作接口:IUserDao
public interface IUserDao {
// 添加用户(注册功能)
public void addUser(User user);
// 查找用户(登录功能)
public User findUser(String username, String password);
// 修改用户(重置密码)
public void updateUser(String username, String password);
}
- 实现接口类:UserDaoImpl
public class UserDaoImpl implements IUserDao {
private List<User> userList; // 用户列表
// 构造方法
public UserDaoImpl() {
userList = new ArrayList<User>();
}
// 添加用户(注册功能)
public void addUser(User user) {
userList.add(user);
System.out.println('用户添加成功!');
}
// 查找用户(登录功能)
public User findUser(String username, String password) {
for (User user : userList) {
if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
System.out.println('用户登录成功!');
return user;
}
}
System.out.println('用户名或密码错误,登录失败!');
return null;
}
// 修改用户(重置密码)
public void updateUser(String username, String password) {
for (User user : userList) {
if (user.getUsername().equals(username)) {
user.setPassword(password);
System.out.println('用户密码重置成功!');
return;
}
}
System.out.println('用户名不存在,密码重置失败!');
}
}
- 测试类:TestUser
public class TestUser {
public static void main(String[] args) {
// 测试添加用户(注册功能)
User user1 = new User('Tom', '123456', '123456', '2000-01-01');
User user2 = new User('Jerry', '111111', '111111', '1999-12-31');
IUserDao userDao = new UserDaoImpl();
userDao.addUser(user1);
userDao.addUser(user2);
// 测试查找用户(登录功能)
User loginUser = userDao.findUser('Tom', '123456');
if (loginUser != null) {
System.out.println('登录用户:' + loginUser.getUsername() + ', 生日:' + loginUser.getBirthday());
}
// 测试修改用户(重置密码)
userDao.updateUser('Tom', '654321');
loginUser = userDao.findUser('Tom', '654321');
if (loginUser != null) {
System.out.println('登录用户:' + loginUser.getUsername() + ', 生日:' + loginUser.getBirthday());
}
}
}
运行结果:
用户添加成功!
用户添加成功!
用户登录成功!
登录用户:Tom, 生日:2000-01-01
用户密码重置成功!
用户登录成功!
登录用户:Tom, 生日:2000-01-01
说明:
- 以上代码示例仅供参考,具体实现方式可根据实际需求进行调整。
- 为了简化示例,代码中未进行异常处理和数据持久化操作。
- 建议在实际开发中使用数据库等持久化存储方式来保存用户信息。
- 对于密码存储,请使用加密方式进行保护。
- 另外,建议使用更安全的方式来管理用户信息,例如使用 JWT 来实现身份验证。
- 以上示例展示了如何使用接口和单元测试来实现用户类的操作,提高代码的可读性和可维护性。
原文地址: https://www.cveoy.top/t/topic/nW2E 著作权归作者所有。请勿转载和采集!