采用接口的思想实现用户类的操作。 【需求】:对用户类的操作,添加用户(注册功能)、查找用户(登录功能)、修改用户(重置密码)等 【思路】: 1. 定义用户类的JavaBean:User(用户名、密码、确认密码,生日) 2. 定义接口: 用户操作接口(IUserDao) 包含添加用户(注册功能)、查找用户(登录功能)、用户(重置密码)三 种抽象方法 3. 定义实现接口类:UserDaoImpl, 重写三个抽象方法,其中的登录功能可以参考实验五来完成。 4. 定义测试类(TestUser):编写单元测试来测试三种功能的操作。
时间: 2023-06-27 12:02:04 浏览: 67
代码如下:
User.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); // 查找用户,返回查找到的用户对象
boolean updateUser(String username, String newPassword); // 修改用户密码,返回是否修改成功
}
```
UserDaoImpl.java
```
public class UserDaoImpl implements IUserDao {
private List<User> userList; // 模拟数据库中的用户表
public UserDaoImpl() {
userList = new ArrayList<>();
}
@Override
public boolean addUser(User user) {
if (findUser(user.getUsername()) != null) { // 用户名已存在,无法添加
return false;
}
userList.add(user);
return true;
}
@Override
public User findUser(String username) {
for (User user : userList) {
if (user.getUsername().equals(username)) {
return user;
}
}
return null; // 没有找到对应的用户
}
@Override
public boolean updateUser(String username, String newPassword) {
User user = findUser(username);
if (user == null) { // 没有找到对应的用户,无法修改密码
return false;
}
user.setPassword(newPassword);
return true;
}
}
```
TestUser.java
```
public class TestUser {
private IUserDao userDao;
@Before
public void init() {
userDao = new UserDaoImpl();
}
@Test
public void testAddUser() {
User user = new User();
user.setUsername("test");
user.setPassword("123456");
user.setConfirmPassword("123456");
user.setBirthday(new Date());
assertTrue(userDao.addUser(user));
}
@Test
public void testFindUser() {
User user = new User();
user.setUsername("test");
user.setPassword("123456");
user.setConfirmPassword("123456");
user.setBirthday(new Date());
userDao.addUser(user);
assertNotNull(userDao.findUser("test"));
}
@Test
public void testUpdateUser() {
User user = new User();
user.setUsername("test");
user.setPassword("123456");
user.setConfirmPassword("123456");
user.setBirthday(new Date());
userDao.addUser(user);
assertTrue(userDao.updateUser("test", "654321"));
}
}
```
阅读全文