[解決済み] コヒーシ ョンとカップリングの違い
2022-03-16 09:37:12
質問
コヒーシオンとカップリングの違いは何ですか?
結合と凝集は、どのようにソフトウェア設計の良し悪しにつながるのでしょうか?
この2つの違いと、コード品質全体への影響を概説する例をいくつか挙げてください。
どのように解決するのか?
コヒーシ ョン は、クラス(またはモジュール)ができることを指します。結合度が低いと、そのクラスは非常に多様なアクションを行うことになります。結合度が高いということは、そのクラスがやるべきことに集中している、つまり、そのクラスの意図に関連するメソッドのみを実行することを意味します。
低凝集の例。
-------------------
| Staff |
-------------------
| checkEmail() |
| sendEmail() |
| emailValidate() |
| PrintLetter() |
-------------------
高結合度の例。
----------------------------
| Staff |
----------------------------
| -salary |
| -emailAddr |
----------------------------
| setSalary(newSalary) |
| getSalary() |
| setEmailAddr(newEmail) |
| getEmailAddr() |
----------------------------
については カップリング これは、2つのクラスやモジュールがお互いにどの程度関連しているか、または依存しているかを意味します。低密結合のクラスでは、一方のクラスで何か大きな変更を加えても、もう一方のクラスには影響しないはずです。高結合では、コードの変更と保守が困難になります。クラスが密接に結合しているため、変更を加えるにはシステム全体の見直しが必要になる可能性があります。
優れたソフトウェア設計は <強い 高い結合力 と <強い 低結合 .
関連
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] メソッドと関数の違いは何ですか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] フィールドとプロパティの違いは何ですか?
-
[解決済み] リスコフ置換原理の例として、どのようなものがありますか?
-
[解決済み] Java のコア・ライブラリにおける GoF デザイン・パターンの例
-
[解決済み] RESTとRESTfulの違いは何ですか?
-
[解決済み] Delegateとは?[クローズド]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] インターフェースとベースクラス
-
[解決済み] 抽象クラスの代わりにインターフェイスを使用する場合とその逆は?
-
[解決済み】「結合度が低く、結合度が高い」とはどういう意味ですか?
-
[解決済み】依存関係逆転の原則とは何ですか、なぜそれが重要なのですか?
-
[解決済み】コンストラクターとファクトリーメソッドの比較【終了しました
-
[解決済み] ProxyパターンとDecoratorパターンの違い
-
[解決済み] メソッドチェイニング - なぜ良い習慣なのか、そうでないのか?
-
[解決済み] 実装ではなくインターフェースにプログラムする」とはどういう意味ですか?
-
[解決済み] 継承と集計の比較【終了しました
-
[解決済み] オブジェクト指向プログラミングにおける「インターフェイス」の定義とは?