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;
}
// get、set 方法
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 {
// 添加用户(注册功能)
boolean addUser(User user);
// 查找用户(登录功能)
User findUser(String username, String password);
// 修改用户(重置密码)
boolean updateUser(User user);
}
- 定义实现接口类:UserDaoImpl
public class UserDaoImpl implements IUserDao {
// 用户列表
private List<User> userList = new ArrayList<>();
// 添加用户(注册功能)
@Override
public boolean addUser(User user) {
// 判断用户名是否已存在
for (User u : userList) {
if (u.getUsername().equals(user.getUsername())) {
return false;
}
}
// 添加用户
userList.add(user);
return true;
}
// 查找用户(登录功能)
@Override
public User findUser(String username, String password) {
// 查找用户
for (User u : userList) {
if (u.getUsername().equals(username) && u.getPassword().equals(password)) {
return u;
}
}
return null;
}
// 修改用户(重置密码)
@Override
public boolean updateUser(User user) {
// 查找用户
for (User u : userList) {
if (u.getUsername().equals(user.getUsername())) {
// 重置密码
u.setPassword(user.getPassword());
u.setConfirmPassword(user.getConfirmPassword());
return true;
}
}
return false;
}
}
- 定义测试类(TestUser)
public class TestUser {
public static void main(String[] args) {
// 创建用户操作接口实例
IUserDao userDao = new UserDaoImpl();
// 添加用户(注册功能)
User user1 = new User('user1', '123456', '123456', '1990-01-01');
User user2 = new User('user2', '123456', '123456', '1991-02-02');
boolean result1 = userDao.addUser(user1);
boolean result2 = userDao.addUser(user2);
System.out.println('添加用户(注册功能)结果:' + result1 + ' ' + result2);
// 查找用户(登录功能)
User loginUser = userDao.findUser('user1', '123456');
System.out.println('查找用户(登录功能)结果:' + loginUser);
// 修改用户(重置密码)
User updateUser = new User('user1', '654321', '654321', '1990-01-01');
boolean result3 = userDao.updateUser(updateUser);
System.out.println('修改用户(重置密码)结果:' + result3);
}
}
总结:
通过定义接口和实现类,将用户操作逻辑与具体实现分离,提高了代码的可扩展性和可维护性。使用接口可以更方便地进行单元测试,提高代码质量。
原文地址: https://www.cveoy.top/t/topic/nW1t 著作权归作者所有。请勿转载和采集!