C#における凝集度(Cohesion)とは?高凝集なコード設計の重要性と実践例
C#における凝集度(Cohesion)とは
C#における「凝集度(Cohesion)」とは、モジュール内部の要素同士がどれだけ密接に関連しているかを示す指標です。モジュールの機能的な強さを表しており、凝集度が高いほどプログラム設計の品質は向上します。
高凝集(High Cohesion)のメリット
凝集度は、メソッドや内部モジュールといったクラス内部の要素間の依存関係を表します。高凝集な設計を実現することで、クラスやメソッドの再利用が容易になり、コード全体の保守性も大きく向上します。
具体例:System.Mathクラス
高凝集の代表例として挙げられるのが、C#標準ライブラリのSystem.Mathクラスです。このクラスには数学関連の定数と静的メソッドのみが整理されてまとめられています。
Math.Abs Math.PI Math.Pow
このように、目的が明確に絞られたクラスは、利用者にとって直感的で分かりやすくなります。
低凝集(Low Cohesion)の問題点
一方で、1つのクラスが多数の役割を同時に担っている場合、そのコードは理解しづらく、保守も困難になります。これを「低凝集」と呼び、避けるべきアンチパターンです。
例えば、メール送信・印刷・コピーなど、互いに関連性のない機能を1つのクラスで提供すると、変更の影響範囲が広がり、メンテナンス性と再利用性が大きく損なわれます。
まとめ
C#で高品質なコードを書くためには、常に強い凝集度(高凝集)を目指すことが重要です。「単一責任の原則」にも通じる考え方ですが、1つのクラスには1つの明確な責務を持たせることで、読みやすく、テストしやすく、再利用しやすい設計が実現できます。
-
JavaScriptモジュール入門:ES2015のexportとimportを使いこなそう
JavaScriptモジュールとは モジュールはES 2015(ES6)で導入された機能です。大規模化しがちなコードを、再利用しやすい小さな単位に分割することを目的としています。モジュールにはクラスや関数などを格納でき、exportキーワードで変数・関数・オブジェクトを外部に公開し、別のファイルからimportキーワードで読み込んで使用します。 注意:この記事のサンプルを実行するには、ローカルホストサーバーが必要です。HTMLファイルを直接開いた場合、CORSポリシーによりモジュールの読み込みがブロックされることがあります。 モジュールのメリット コードの分割により保守性が向上する 関数やク
-
JavaScriptモジュールを動的にロードする方法
JavaScriptモジュールを動的にロードするJavaScriptでは、ESモジュール機能を利用することで、コードを複数のファイルに分割し、必要なときに読み込むことができます。ここでは、JavaScriptモジュールを動的にロードするためのサンプルコードを紹介します。注意: この例を実行するには、ローカルホスト(localhost)サーバー環境が必要です。HTMLファイルを直接ブラウザで開くと、CORS制限によりエラーが発生する可能性があるため、必ずサーバー経由でアクセスしてください。HTMLファイル<!DOCTYPE html> <html lang=en> <