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