オブジェクト指向設計 五大原則
- 単一責任の原則
「クラスを変更する理由は一つ」
変更単位でクラスを分割する - オープン・クローズの原則
「修正に対して閉じて、変更に対して開いている」
仕様変更のとき、コードの修正でなく、拡張(クラスの継承)で実現する - リスコフの置換原則
「サブクラスはスーパークラスに置換可能」
クラスを親クラスに変更してもシステムは実行可能 - 依存関係逆転の原則
「抽象化部分は実装の詳細に依存しない。実装の詳細が抽象部分に依存する。」
モジュールの呼び出し側はモジュールの詳細に関心ない。サブクラスの違いで詳細を実装する。 - インターフェース分離の原則
「利用側にメソッドの依存を強要しない。」
インターフェースは開発者の利便ではなく、利用者側の利便性で作成する