1. ホーム
  2. oop

[解決済み] コヒーシ ョンとカップリングの違い

2022-03-16 09:37:12

質問

コヒーシオンとカップリングの違いは何ですか?

結合と凝集は、どのようにソフトウェア設計の良し悪しにつながるのでしょうか?

この2つの違いと、コード品質全体への影響を概説する例をいくつか挙げてください。

どのように解決するのか?

コヒーシ ョン は、クラス(またはモジュール)ができることを指します。結合度が低いと、そのクラスは非常に多様なアクションを行うことになります。結合度が高いということは、そのクラスがやるべきことに集中している、つまり、そのクラスの意図に関連するメソッドのみを実行することを意味します。

低凝集の例。

-------------------
| Staff           |
-------------------
| checkEmail()    |
| sendEmail()     |
| emailValidate() |
| PrintLetter()   |
-------------------

高結合度の例。

----------------------------
| Staff                   |
----------------------------
| -salary                 |
| -emailAddr              |
----------------------------
| setSalary(newSalary)    |
| getSalary()             |
| setEmailAddr(newEmail)  |
| getEmailAddr()          |
----------------------------

については カップリング これは、2つのクラスやモジュールがお互いにどの程度関連しているか、または依存しているかを意味します。低密結合のクラスでは、一方のクラスで何か大きな変更を加えても、もう一方のクラスには影響しないはずです。高結合では、コードの変更と保守が困難になります。クラスが密接に結合しているため、変更を加えるにはシステム全体の見直しが必要になる可能性があります。

優れたソフトウェア設計は <強い 高い結合力 と <強い 低結合 .