web-dev-qa-db-ja.com

凝集性の反対は何ですか?

一連のクラスで非常に低いレベルの結束をもたらす可能性のある特定のアプローチに関するいくつかの懸念について、私の建築家と話していました。しかし、結束力の低さを表す言葉は思いつきませんでした。

私は「明らかに、まとまりのあるクラスが欲しい...ああ...まとまりのないクラスが欲しい」という言葉に沿って何か言った

私が使用すべきだった正しい言葉は何ですか?

4
Justin Self

Wikipediaによると

凝集力は ordinal測定値 のタイプであり、通常、議論されている場合は「高い凝集力」または「低い凝集力」と表現されます。

そのため、「明らかに、凝集度の低いクラスではなく、凝集度の高いクラスが必要です」というフレーズになります。

11
dasblinkenlight

個人的には、会話的で定性的な説明だけを探している場合は、「まとまりのない」を使用して「まとまりのある」の反対を意味するでしょう。

4
Erik Dietrich

しかし、結束力の低さを表す言葉は思いつきませんでした。

人々は「低凝集性」または「高凝集性」のような用語を使用しますが、どちらかの定義は議論の余地があります。技術的にまとまりは( Wikipedia )として見ることができます。

  • 偶発的な凝集(最悪)-偶然の凝集とは、モジュールの一部が任意にグループ化されることです。パーツ間の唯一の関係は、それらが一緒にグループ化されていることです(「ユーティリティ」クラスなど)。

  • 論理的まとまり:論理的まとまりとは、たとえそれらが本質的に異なっていても(たとえば、すべてのマウスとキーボードの入力処理ルーチンをグループ化するなど)、論理的に分類されて同じことを行うため、モジュールの一部がグループ化されることです。

  • 一時的な凝集:一時的な凝集は、モジュールの一部が処理されるときにグループ化されるときです-部分はプログラム実行の特定の時間に処理されます(たとえば、開いているファイルを閉じる例外をキャッチした後に呼び出される関数がエラーログを作成します) 、ユーザーに通知します)。

  • 手続き型の凝集:手続き型の凝集とは、モジュールの一部が常に特定の実行シーケンス(ファイルのアクセス許可を確認してからファイルを開く関数など)に続くため、グループ化された部分です。

  • コミュニケーションのまとまり:コミュニケーションのまとまりとは、同じデータを操作するためにモジュールの一部がグループ化される場合です(たとえば、同じ情報のレコードを操作するモジュール)。

  • 逐次凝集:逐次凝集とは、ある部品からの出力がアセンブリーライン(ファイルからデータを読み取り、データを処理する関数など)のような別の部品への入力であるため、モジュールの部品がグループ化される場合です。

  • 機能的凝集度(最適):機能的凝集度とは、モジュールの一部がグループ化されている場合です。これらはすべて、モジュールの1つの明確に定義されたタスク(XMLの文字列のトークン化など)に寄与するためです。

凝集性の反対は何ですか?

私は「明らかに、まとまりのあるクラスが欲しい...ああ...まとまりのないクラスが欲しい」という言葉に沿って何か言った

反対、つまり、「非凝集性」または「非凝集性」などはありません。

1
theD

ロバートC.マーティンが SRP:単一責任の原則 に関連して「壊れやすい設計」という用語を取り上げます。

クラスに複数の責任がある場合、責任は結合されます。 1つの責任を変更すると、クラスが他の責任を満たす能力が損なわれたり阻害されたりする可能性があります。この種の結合は、変更すると予期しない方法で壊れる壊れやすい設計につながります。

彼は脆弱性を次のように定義しています。

剛性と密接に関連しているのは脆弱性です。脆弱性は、ソフトウェアが変更されるたびに、ソフトウェアが多くの場所で壊れる傾向です。多くの場合、破損は、変更された領域と概念的な関係がない領域で発生します。このようなエラーは、マネージャーの心に予感を与えます。彼らは修正を承認するたびに、ソフトウェアが予期しない方法で壊れることを恐れています。

脆弱性が悪化すると、時間の経過とともに破損の可能性が高まり、漸近的に1に近づきます。このようなソフトウェアを維持することは不可能です。修正するたびに状況が悪化し、解決するよりも多くの問題が発生します。

このようなソフトウェアにより、マネージャーや顧客は、開発者がソフトウェアの制御を失ったと疑うようになります。不信が支配し、信頼性が失われます。

設計原則と設計パターン

クラスの説明としての「壊れやすい」という用語は、 壊れやすい基本クラスの問題 でも発生します。

1
Eddie Gasparian

「バラバラ」が気に入らない場合は、「一貫性がない」ことをお勧めします。正確な反意語「コヒーレント」は、システムアーキテクチャのコンテキストにおける「凝集性」の意味に似ています。

「一貫性のない」も好きです。これは、異なるパーツ間の調整の欠如を示唆しているからです。

0
comingstorm

"Refractory"

  1. 権威や統制に執着する。
  2. 溶けたり、働きにくい。耐熱性(金属加工)

クラスがrefractoryである場合、それらはスムーズに連携せず、メンテナが多くのクラスにまたがって変更を加えることは困難です。

これは、使用している「まとまりのある」という意味のまともな反意語のようです。適切に機能し、規則正しく結合されています。

0
Mike Samuel

Googleは反発し、次のようになります。repellent(とりわけ)。

各「クラス」は他のクラスと比べて同じ重みを持っているように見えるので、相互または「ピアエネルギー」が適切です。 「忌避剤クラス」は、かなりうまく舌から離れているようです。

0
duanev