知识卡片

接口须绝对单一类的粒度按现实约束权衡

普通读书笔记卡 · 1979.n.1.a.1.a

内容

应用[[单一职责原则的定义]]时,接口应严格单一,因为接口是对外契约;但类的实现层面生搬 硬套单一职责,容易把本可一个类完成的行为强拆成多个类再耦合起来。类的职责划分要综合考虑 工期、成本、团队水平、外部协议限制等现实因素。发散:原则约束的是”契约”,不是”具体怎么 写代码”。

参考来源

- 位置:《设计模式之禅(第2版)》第1章《单一职责原则》(源文件:_epub-src/text/part0006.html、part0007.html) - 结论依据:原文明确"对于接口,我们在设计的时候一定要做到单一……对于实现类就需要多方面考虑了",并用甲方锁死加密API通信协议、不允许考虑单一职责的真实项目案例,说明类的粒度受现实约束支配。 - 原始内容:对于接口,我们在设计的时候一定要做到单一,但是对于实现类就需要多方面考虑了。生搬硬套单一职责原则会引起类的剧增……对于单一职责原则,我的建议是接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。