Coding style 什么时候违反单一责任原则是合理的?

Coding style 什么时候违反单一责任原则是合理的?,coding-style,design-principles,Coding Style,Design Principles,在重构了java web应用程序中的一些服务层类之后,我问自己,在哪一点上停止遵守单一责任原则(SRP)并保持代码的可维护性和可读性是合理的。现在我想问你在这个问题上的经验 示例: 假设UserManager类执行以下操作: 从数据库中查找用户 创建新用户 操纵现有用户 案例A:这三项职责中的每一项都由执行其任务的几种方法组成 → 对我来说,把它分成三类是很清楚的 案例B:这三项职责中的每一项都只包含一种方法 → 在这种情况下,您有什么建议?应该将其分为三个小类还是留在UserManager类中

在重构了java web应用程序中的一些服务层类之后,我问自己,在哪一点上停止遵守单一责任原则(SRP)并保持代码的可维护性和可读性是合理的。现在我想问你在这个问题上的经验

示例:

假设UserManager类执行以下操作:

  • 从数据库中查找用户
  • 创建新用户
  • 操纵现有用户
  • 案例A:这三项职责中的每一项都由执行其任务的几种方法组成

    → 对我来说,把它分成三类是很清楚的

    案例B:这三项职责中的每一项都只包含一种方法


    在这种情况下,您有什么建议?应该将其分为三个小类还是留在UserManager类中?

    在我看来,与OOP相关的SRP意味着与特定对象或实体相关的状态和行为都应该在一个类中。因此,我的观点是,您希望将与用户相关的所有方法都保留在一个类中,而不管有多少方法或者执行特定任务需要多少方法

    SRP的要点(在我看来)是确保没有域对象相互操纵。换句话说,如果您(假设)有另一个名为
    AccountManager
    的类,那么该类不应该有任何直接操作
    User
    对象的操作,因为这将违反SRP。相反,
    AccountManager
    类需要依赖
    UserManager
    类来处理任何/所有用户操作