質問

私はロバート・マーティンのクリーンなコードを読んでいて、彼はコードが非常にまとまりがあることについて言及しています。

クラスには、少数のインスタンス変数が必要です。クラスの各メソッドは、これらの変数の1つ以上を操作する必要があります。一般に、メソッドがより変動するほど、そのメソッドはよりまとまりがあるほどクラスになります。各方法で各変数が使用されるクラスは最大限に凝集します。

しかし、同時コードを作成しようとしている場合、人種条件を避けるために、変数の範囲を単一の方法に制限するよう努めます。しかし、これにより、まとまりが少ないコードが得られます。

アプリケーション/クラスを設計するとき、あなたは何を好むべきですか - 結束または同時性?

役に立ちましたか?

解決

私はマーティンの概念のかなりの数が好きですが、あなたのコードは正しく実行する必要があり、それがそうでない場合、世界のすべての美しいメトリックはあなたを良くすることはありません。

それに加えて、スレッド化の問題はデバッグが最悪の事態であることに加えて、あなたのデザインを妥協して、凝集についての本で誰かが書いたもののアイデアに準拠するためにあなたのデザインを妥協すべきではありません。繰り返しますが、私はマーティンをノックしていません...彼はあなたに同じことを言うだろうと確信しています。結局のところ、彼はほとんどすべてが彼の執筆のほとんどで連続していることを認識しています。

あなたが非常に正しい場所に重点を置いているかどうかはわかりません(私があなたの質問を読んでいる方法かもしれません)。マーティンは、できるだけ多くの変数をクラスレベルでライブするべきだと言っていません。彼はクラスレベルの変数のうち、何人使用していると言っていますか?必要のない変数を宣伝する場合、より高い凝集性を得ていないかもしれません...あなたはより厳しいカップリングを得ているかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top