MST

星途 面试题库

面试题:Java中单一职责原则在类设计上的应用

请举例说明在Java编程中,如何通过遵循单一职责原则来设计一个类。假设你要开发一个用户管理模块,其中包含用户信息的存储、读取以及用户权限验证功能,按照单一职责原则,你会如何设计相关的类?
45.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 用户信息存储类
    • 类名UserInfoStorage
    • 职责:负责用户信息的存储操作。
    • 示例代码
public class UserInfoStorage {
    public void saveUserInfo(User user) {
        // 这里实现将用户信息保存到数据库或文件等存储介质的逻辑
        System.out.println("Saving user info of " + user.getUsername() + " to storage.");
    }
}
  1. 用户信息读取类
    • 类名UserInfoReader
    • 职责:负责用户信息的读取操作。
    • 示例代码
public class UserInfoReader {
    public User readUserInfo(String username) {
        // 这里实现从数据库或文件等存储介质读取用户信息的逻辑
        // 暂时返回一个模拟用户信息
        return new User(username, "password", "role");
    }
}
  1. 用户权限验证类
    • 类名UserPermissionValidator
    • 职责:负责用户权限的验证操作。
    • 示例代码
public class UserPermissionValidator {
    public boolean validatePermission(User user, String permission) {
        // 这里实现验证用户是否具有特定权限的逻辑
        // 简单示例,假设用户角色为 "admin" 就有权限
        return "admin".equals(user.getRole()) && "somePermission".equals(permission);
    }
}
  1. 用户类
    • 类名User
    • 职责:封装用户的基本信息。
    • 示例代码
public class User {
    private String username;
    private String password;
    private String role;

    public User(String username, String password, String role) {
        this.username = username;
        this.password = password;
        this.role = role;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getRole() {
        return role;
    }
}

这样,每个类都只负责单一的职责,符合单一职责原则,便于代码的维护、扩展和复用。