采用接口的思想实现用户类的操作。 【需求】:对用户类的操作,添加用户(注册功能)、查找用户(登录功能)、修改用户(重置密码)等 【思路】: 1. 定义用户类的JavaBean:User(用户名、密码、确认密码,生日) 2. 定义接口: 用户操作接口(IUserDao) 包含添加用户(注册功能)、查找用户(登录功能)、用户(重置密码)三 种抽象方法 3. 定义实现接口类:UserDaoImpl, 重写三个抽象方法,其中的登录功能可以参考实验五来完成。 4. 定义测试类(TestUser):编写单元测试来测试
时间: 2023-06-25 12:04:23 浏览: 110
IUserDao接口和UserDaoImpl实现类,验证用户类的操作是否正确实现。以下为示例代码:
User.java:
```java
public class User {
private String username;
private String password;
private String confirmPassword;
private Date birthday;
// 省略getter、setter方法
}
```
IUserDao接口:
```java
public interface IUserDao {
boolean addUser(User user); // 添加用户(注册功能)
User findUser(String username, String password); // 查找用户(登录功能)
boolean updateUser(String username, String password); // 修改用户(重置密码)
}
```
UserDaoImpl实现类:
```java
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(String username, String password) {
// 修改用户密码
for (User u : userList) {
if (u.getUsername().equals(username)) {
u.setPassword(password);
return true;
}
}
return false;
}
}
```
TestUser测试类:
```java
public class TestUser {
private IUserDao userDao = new UserDaoImpl(); // 实例化UserDaoImpl
@Test
public void testAddUser() {
User user = new User();
user.setUsername("test");
user.setPassword("123456");
user.setConfirmPassword("123456");
user.setBirthday(new Date());
boolean result = userDao.addUser(user);
Assert.assertTrue(result); // 断言添加用户成功
}
@Test
public void testFindUser() {
User user = userDao.findUser("test", "123456");
Assert.assertNotNull(user); // 断言查找用户成功
}
@Test
public void testUpdateUser() {
boolean result = userDao.updateUser("test", "654321");
Assert.assertTrue(result); // 断言修改用户密码成功
User user = userDao.findUser("test", "654321");
Assert.assertNotNull(user); // 断言查找用户成功
}
}
```
以上为用户类的操作实现,采用接口的思想可以使代码更加灵活、扩展性更好。