You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在与单一职责原则“相反”的职责集中原则?

存在这类与单一职责原则思路互补的设计原则

这类原则的核心是高内聚,还有几个具体的设计原则完全契合你描述的“将特定任务/实体相关的所有职责集中到一处”的思路:

  • 高内聚(High Cohesion)
    这是和单一职责原则互补的核心设计概念。单一职责强调拆分不同领域的职责到独立模块,而高内聚要求把同一业务实体、同一业务目标下的所有操作集中到同一模块,让模块内的逻辑紧密关联,服务于同一个核心目的。
    比如你提到的EntityService例子:把该Entity的CRUD、映射逻辑都放在EntityService里,就是高内聚的典型实践——所有和这个Entity相关的逻辑都集中在一起,避免分散到多个无关模块,后续维护时不用跨多个文件找相关代码。

  • 信息专家原则(Information Expert Principle)
    这是GRASP设计原则中的一条,核心逻辑是:拥有完成某操作所需全部信息的类,应该负责执行该操作。
    比如Entity对应的服务类最清楚这个Entity的数据结构和业务规则,把Entity的映射逻辑放在这里,比放到全局通用映射器更合理——它不需要依赖外部模块获取信息,也能让数据和相关逻辑绑定在一起,降低耦合。

  • 共同闭包原则(Common Closure Principle)
    这条原则属于敏捷软件开发原则,要求把会因为同一原因修改的代码放在一起。
    比如如果修改Entity的字段结构时,其业务逻辑和映射逻辑都需要同步调整,把这两部分放在同一个服务类里,就能避免在多个地方修改,减少出错概率,提升维护效率——这也是把相关职责集中的体现。

你提到的示例1(把对象运行所需的所有配置都放入构造函数,初始化后直接可用),本质也是高内聚的实践:把对象的初始化逻辑集中在一处,避免分散的初始化步骤,保证对象状态的完整性和一致性。

需要明确的是,这些原则和单一职责原则并不是完全对立的,而是互补的。单一职责是避免一个模块承担无关的职责,高内聚等原则是避免相关职责被过度拆分,两者的最终目标都是提升代码的可维护性和可读性,只是侧重点不同。

内容的提问来源于stack exchange,提问作者yaapelsinko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:05:02