May 2025
Intermediate to advanced
124 pages
1h 7m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
耦合元素应该是同一包含元素的子元素。 这是内聚的第一个含义。把所有的粪便铲到一堆里。内聚的第二个含义是:,不是粪便的元素(好吧,不是耦合的元素)应该去别的地方。
例如,假设我们有一个包含 10 个函数的模块。其中三个函数是耦合的。其他七个该去哪里呢?我们有两种选择(图 32-1)。
第一种方法是将耦合元素捆绑到自己的子元素中。我们可以创建一个只包含三个函数的子模块。这个子模块将是内聚的,因为它的元素是耦合的。原始模块的内聚性可能会降低,因为现在它的元素都不是耦合的,但我们的情况不会比以前更糟。
提取辅助函数就是这种 "提取内聚子元素 "的方法。如果辅助函数的各行必须一起更改,那么辅助函数就是内聚的,内聚带来的好处有:更容易分析、更容易更改、不易发生意外行为更改。
第二种选择是将未耦合的元素放到其他地方。放在哪里?这就是设计师的职责所在。这些功能与什么耦合?将这些函数移到离它们的兄弟姐妹更近的地方。它们是相互耦合的吗?为它们创建另一个子模块。
不要轻举妄动。您正在使用不完整且不断变化的信息,了解什么与什么相耦合。不要大幅度地重新排列所有元素。一次只移动一个元素。为下一个人整理代码。如果每个人都遵守童子军规则("让它比你发现它时更好"),随着时间的推移,代码就会变得更适合使用。
Read now
Unlock full access