メモとして残そうと思いました。
基本的なことでもあると思い、私と同じくこのようなことを調べられている方の力になれたら幸いです。
高凝集
ある集合内の要素同士が密接に関連していることを指します。
例えば、あるプログラムのクラス内にあるメソッドや変数同士が密接に関連している場合、そのクラスは高凝集であると言えます。
反対に、あるクラス内のメソッドや変数同士が関連性が薄い場合、そのクラスは低凝集であると言えます。
低結合
システム内のある機能やクラスが、他の機能やクラスに依存しすぎず、独立していることを指します。つまり、ある機能が変更された場合に、その変更が他の機能に影響を与えることが少ないことを意味します。低結合のシステムは、変更に強く、保守性が高いとされています。
関心の分離
ソフトウェア設計の原則の1つで、コードの可読性や保守性が向上し、変更に強いコードを作成することができます。
関心の分離には、以下のようなに分けられます。
- 役割の分離: クラスやモジュールを、それぞれの役割に基づいて分割することができます。例えば、MVC (Model-View-Controller) パターンでは、モデル、ビュー、コントローラーという3つの役割に分割されます。
- レイヤーの分離: クライアントサイドとサーバーサイドのように、複数のレイヤーに分割することができます。レイヤーの分離により、コードの再利用性や拡張性が向上します。
- 機能の分離: 機能ごとにモジュールを分割することができます。これにより、コードの再利用性やテストの容易性が向上します。
関心の分離は、ソフトウェア設計の基本的な原則の1つであり、コードの品質を向上させるために重要な考え方です。