重构思路
- 单一职责原则(SRP):
- 原类处理用户登录与用户信息管理,职责过多。根据SRP,将这两个职责拆分到不同类中。
- 创建
UserLoginService
类专门负责用户登录相关操作,例如验证用户名密码、生成登录令牌等。
- 创建
UserInfoManagementService
类专门负责用户信息管理,如添加、修改、查询用户信息。
- 开闭原则(OCP):
- 对于
UserLoginService
,如果后续有新的登录方式(如第三方登录),可以通过创建新的类继承UserLoginService
,重写相关登录方法来实现,而不是修改UserLoginService
类本身。
- 对于
UserInfoManagementService
,如果要增加新的用户信息管理操作(如用户信息的备份),可以创建新类继承UserInfoManagementService
并实现备份方法,而不修改原类。
重构示例代码(简化示意)
// 原类
class UserService {
public void login(String username, String password) {
// 登录逻辑
}
public void updateUserInfo(String userId, String newInfo) {
// 用户信息更新逻辑
}
}
// 重构后 - 用户登录服务类
class UserLoginService {
public void login(String username, String password) {
// 登录逻辑
}
}
// 重构后 - 用户信息管理服务类
class UserInfoManagementService {
public void updateUserInfo(String userId, String newInfo) {
// 用户信息更新逻辑
}
}
好处
- 单一职责原则的好处:
- 提高代码可读性:每个类职责明确,阅读代码时能快速了解其功能。
- 增强可维护性:当登录逻辑或用户信息管理逻辑需要修改时,只需要关注对应的类,而不会影响其他无关功能。
- 降低耦合度:不同职责的类之间相互独立,修改一个类不会轻易影响其他类,有利于系统的扩展性和稳定性。
- 开闭原则的好处:
- 方便功能扩展:在不修改原有代码的基础上,可以通过继承等方式添加新功能,符合软件的持续发展需求。
- 避免引入新的错误:不修改原有代码,减少了因修改代码而引入新的缺陷的风险,提高了系统的可靠性。