使用接口思想实现用户类的操作

需求: 对用户类的操作,包括添加用户(注册功能)、查找用户(登录功能)、修改用户(重置密码)等

思路:

  1. 定义用户类的 JavaBean:User(用户名、密码、确认密码,生日)
  2. 定义接口:用户操作接口(IUserDao) 包含添加用户(注册功能)、查找用户(登录功能)、修改用户(重置密码)三种抽象方法
  3. 定义实现接口类:UserDaoImpl,重写三个抽象方法,其中的登录功能可以参考实验五来完成。
  4. 定义测试类(TestUser):编写单元测试来测试三种功能的操作。

代码示例:

  1. 用户类的 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;
    }
}
  1. 用户操作接口:IUserDao
public interface IUserDao {
    // 添加用户(注册功能)
    public void addUser(User user);
    
    // 查找用户(登录功能)
    public User findUser(String username, String password);
    
    // 修改用户(重置密码)
    public void updateUser(String username, String password);
}
  1. 实现接口类: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('用户名不存在,密码重置失败!');
    }
}
  1. 测试类: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 来实现身份验证。
  • 以上示例展示了如何使用接口和单元测试来实现用户类的操作,提高代码的可读性和可维护性。
Java 用户类操作实现:接口与单元测试

原文地址: https://www.cveoy.top/t/topic/nW2E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录