9.10
[实验任务二]:单一职责原则
登录模块在实际项目开发中很常见,请按照教材28页(PPT49页)利用单一职责原则重构后的类图实现这一模块。
实验要求:
1.提交源代码和对应的数据库文件(注意将此模块保存,以备以后使用);
2.注意编程规范。
1.User.java public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } // Getters and Setters } 2.UserRepository.java import java.sql.*; public class UserRepository { private Connection connection; public UserRepository(Connection connection) { this.connection = connection; } public User findUserByUsername(String username) { try { PreparedStatement stmt = connection.prepareStatement("SELECT * FROM Users WHERE username = ?"); stmt.setString(1, username); ResultSet rs = stmt.executeQuery(); if (rs.next()) { return new User(rs.getString("username"), rs.getString("password")); } } catch (SQLException e) { e.printStackTrace(); } return null; } } 3.AuthService.java public class AuthService { private UserRepository userRepository; public AuthService(UserRepository userRepository) { this.userRepository = userRepository; } public boolean login(String username, String password) { User user = userRepository.findUserByUsername(username); return user != null && user.getPassword().equals(password); // 简化示例,真实应用中应使用哈希密码 } } 4.LoginController.java public class LoginController { private AuthService authService; public LoginController(AuthService authService) { this.authService = authService; } public void handleLogin(String username, String password) { if (authService.login(username, password)) { System.out.println("登录成功!"); } else { System.out.println("登录失败,用户名或密码错误。"); } } } 5.数据库文件 (SQL) CREATE DATABASE UserDB; USE UserDB; CREATE TABLE Users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL );

浙公网安备 33010602011771号