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

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

思路:

  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;
    }

    // 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;
    }
}
  1. 定义接口:用户操作接口(IUserDao)
public interface IUserDao {
    // 添加用户(注册功能)
    boolean addUser(User user);

    // 查找用户(登录功能)
    User findUser(String username, String password);

    // 修改用户(重置密码)
    boolean updateUser(User user);
}
  1. 定义实现接口类: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;
    }
}
  1. 定义测试类(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);
    }
}

总结:

通过定义接口和实现类,将用户操作逻辑与具体实现分离,提高了代码的可扩展性和可维护性。使用接口可以更方便地进行单元测试,提高代码质量。

Java 用户类操作实现:接口思想应用

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

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