知识卡片

"神元素"反模式与职责失衡的量化信号

普通读书笔记卡 · 2076

内容

架构层面同样会出现面向对象设计里的”神对象”问题:一个体量巨大的核心元素几乎和系统里所有其他元素都有交互,周围散落一堆只是数据结构般的小元素。这种结构让系统难以维护——因为这一个元素的特性直接决定了整个系统的性能、可靠性、可伸缩性表现,想改善绕不开动它。发散:有个粗量化预警信号——若系统里超过一半职责集中在不到四分之一的元素里,就存在职责分配失衡,需要拆开重新分区。

参考来源

- 位置:第17章《功能视点》17.3.8节「"神元素"」问题和缺陷(源文件:_epub-src/OEBPS/text00224.html附近) - 结论依据:原文明确类比面向对象设计中的"神对象"问题,指出神元素几乎和所有其他元素都有交互,会导致系统难维护,并给出量化预警信号——超过50%职责集中在不到25%的元素中,直接支持卡片结论。 - 原始内容:"在这种情况下,客户管理系统元素看起来会显出'神元素'的主要特征,也就是几乎所有涉及它的元素之间的交互……这个问题会导致一种情况,其中系统难于维护,因为'神元素'极为复杂而难于理解……我们的目标是要在主要的元素之间平均地分配系统级别的职责。作为指导,如果你发现超过50%的系统职责集中在少于25%的功能元素中,那么你可能会在系统中拥有很多大型的元素,并且系统会缺少内聚,难于开发,难以适应变更。"