Javaクラス設計の基本原理
Javaクラス設計の基本原則には以下が含まれます。
- 単一責任原則(SRP):クラスは1つの責任のみを持つべきであり、クラスが変化する原因は1つのみであるべき。
- オープン/クローズド原則(OCP):クラスは拡張には開かれ、修正には閉じられているべきだ。すなわち、既存のコードを変更せずに拡張によって新機能を追加する。
- 依存性逆転の原則(DIP):上位モジュールは下位モジュールに依存すべきではなく、双方とも抽象に依存すべきだ。つまり、プログラムの依存関係は具体的な実装ではなく、抽象化を通じて実現されるべきだ。
- インターフェースの分離原則(Interface Segregation Principle、ISP): 汎用インターフェース 1 つよりも、特定のクライアント用のインターフェースが複数ある方がよい。つまり、インターフェースの設計は簡潔で特化されており、クライアントが不要なメソッドに依存する事態があってはならない。
- デメータの法則(LoD):オブジェクトは他のオブジェクトについて最小限の情報しか持たないこと。すなわち、オブジェクトは他のオブジェクトへの依存を可能な限り減らし、直接の友人との通信のみに留めるべきだ。
- リスコフの置換原則(LSP):サブクラスのオブジェクトはスーパークラスのオブジェクトと入れ替えることができて、プログラムの論理は正常に動作するべきである。つまり、サブクラスオブジェクトを使用してもプログラムの正確性に影響を与えるべきではない。
優良なJavaクラスを設計するための基本原則であり、これに従うことで、コードのメンテナンス性、拡張性、再利用性を向上できます。