我正在阅读罗伯特·马丁(Robert Martin)的清洁代码,并提到该代码具有很高的凝聚力:

类应具有少量的实例变量。类的每种方法都应操纵其中一个或多个变量。通常,方法更可变的方法操纵该方法对类别的凝聚力越多。每种方法使用每个变量的类是最大内粘膜的类

但是,当我们试图编写并发代码时,我们努力将变量的范围限制在一种方法中,以避免种族条件。但这导致代码最不凝聚力。

设计应用程序/类时,您应该喜欢什么 - 凝聚力或并发?

有帮助吗?

解决方案

我喜欢马丁的许多概念,但是您的代码需要正确执行,如果不执行,世界上所有美丽的指标都不会使您看起来更好。

再加上,线程问题是最糟糕的调试之一,您不应妥协您的设计,以符合您关于某人在书中写的关于凝聚力的内容的想法。再说一次,我不是在敲马丁...我敢肯定他会告诉你同样的事情。毕竟,他认识到几乎所有内容在他的大多数写作中都处于连续性状态。

我不确定您将重点放在正确的位置(可能只是我阅读您的问题的方式)。马丁并不是说您应该使尽可能多的变量在班级层面上生活。他说的是班级变量,您正在使用多少?如果您不需要促进变量,那么您可能不会变得更高的凝聚力……您可能会变得更加紧密。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top