我从一位同事那里得到了一个设计的回击,我想知道在这种情况下谁是正确的 SRP 应用是否存在共识。
我认为 SRP 主要与较低级别的设计细节有关,例如类责任。随着抽象级别的提高,我相信 SRP 仍然是相关的,但单一职责的定义也必然会向更高级别的抽象移动。
在我的具体情况下,在我看来“处理 foo、存储其结果并提供对这些结果的访问”的服务具有“foo 处理子系统”的单一责任,但是同事不同意并将其视为 2-3责任。我的情况是,如果您总是将单一职责分解为微小的细节,那么拥有“银行”就违反了 SRP,因为它“持有资金、维护账户、出售抵押贷款……”。