知识卡片

设计原则是方向标而非必须恪守的屏障

普通读书笔记卡 · 1872.b.8.a

内容

[[事件分发中心身兼观察者中介者与处理者管理员三重角色]]明显违反单一职责原则, 作者态度不是”应该拆分”,而是承认这是刻意权衡:强拆三个类会显著增加代码量和结构复杂度, 收益未必划算。发散:这引出更根本观点——SOLID这类原则本质是”方向标”,提示往哪调整通常 更好,不是不可逾越的屏障;遇到”遵守原则反而更复杂”时,权衡实际收益比死守原则更重要。

参考来源

- 位置:《设计模式之禅(第2版)》第36章《观察者模式+中介者模式》36.1节(源文件:_epub-src/text/part0155.html) - 结论依据:原文自问自答"事件分发者担当了这么多的职责,那是不是与单一职责原则相违背了?确实如此……如果强制细分也可以完成,但是会加大代码量,同时导致系统的结构复杂",并给出总原则"设计原则只是一个理论,而不是一个带有刻度的标尺,因此在系统设计中不应该把它视为不可逾越的屏障,而是应该把它看成是一个方向标,尽量遵守,而不是必须恪守"。 - 原始内容:事件分发者担当了这么多的职责,那是不是与单一职责原则相违背了?确实如此,我们在整个系统的设计中确实需要这样一个角色担任这么多的功能,如果强制细分也可以完成,但是会加大代码量,同时导致系统的结构复杂……设计原则只是一个理论,而不是一个带有刻度的标尺,因此在系统设计中不应该把它视为不可逾越的屏障,而是应该把它看成是一个方向标,尽量遵守,而不是必须恪守。