在我们的java Web应用程序中重构了一些服务层类之后,我问自己,在哪一点上停止遵守单一责任原则(SRP)并保持代码的可维护性和可读性是合理的。现在我问你关于这个问题的经验。
示例:
假设UserManager类执行以下操作:
案例A:这三项职责中的每一项都由几种执行任务的方法组成。
→我很清楚将它分为三类。
案例B:这三项责任中的每一项都只包含一种方法。
→在这种情况下你会建议什么?这应该分成三个小类还是留在UserManager类中?
答案 0 :(得分:4)
在我看来,与OOP相关的SRP意味着与特定对象或实体相关的状态和行为都应该在一个类中。因此,我的观点是,您希望将与用户相关的所有方法保留在一个类中,无论有多少方法或执行特定任务需要多少方法。
SRP(我认为)的目的是确保你没有域对象相互操纵。换句话说,如果你(假设)有另一个名为AccountManager
的类,那么该类不应该有任何直接操作User
对象的操作 - 因为这会违反SRP。相反,AccountManager
类需要依赖UserManager
类来处理任何/所有用户操作。