]オブジェクト指向とモジュールの凝集度、モジュールの結合度オブジェクト指向とモジュールの凝集度、モジュールの結合度の関係をいい加減に説明します。オブジェクト指向を勉強する上で、モジュールの凝集度とモジュールの結合度は非常に大切なのですが、これについて触れている本は本当に少ないです。何でなんだろうか...。オブジェクト指向の本を書いた人に対して本当にオブジェクト指向を理解しているの?と聞きたくなる。L3の範囲でもあるので、資格取得を考えている人は勉強した方がいいです。1.モジュールの凝集度とは2.モジュールの結合度とは3.オブジェクト指向とモジュールの凝集度、モジュールの結合度4.参考文献など1.モジュールの凝集度とは本やサイトによっては「モジュールの強度」となっているかもしれない。モジュールの凝集度とは、モジュール(クラス)の構成要素の関連性のことです。モジュールの凝集度には表1のものがあります。プログラムを単純に分割しただけで、モジュールの機能を定義できない。複数の機能をあわせもつが、機能間にまったく関連はない。関連した複数の機能をもち、モジュールが呼び出されるときの引数(機能コード)で、モジュール内の1つの機能が選択、実行される。初期設定や終了設定モジュールのように、特定の時期に実行する機能をまとめたモジュール。モジュール内の機能間にあまり関連はない。複数の逐次的に実行する機能をまとめたモジュール。手順的凝集度のうち、モジュール内の機能間にデータの関連性があるモジュール。同一のデータ構造や資源を扱う機能を1つにまとめ、機能ごとに入口点と出口点をもつモジュール。1つの機能だけからなるモジュール。293,294ページ表1は本から引用しましたが、「凝集度と結合度」というページにはもっと詳しく書いてあります。ソフトウエアを設計する際は、可能な限りモジュールの凝集度を高くするような設計にした方が良いです。オブジェクト指向で設計する場合は、クラスの凝集度はできるだけ情報的凝集度となるように設計すればいいと思います。あ、すべてのクラスを高凝集度なクラスとすることは難しい(というか無理?)です。時間的凝集度をもつクラスを作成するなんてことは良くあると思います。ようなユーティリティクラスはどれになるんだろう...。