オブジェクト指向設計 五大原則

  1. 単一責任の原則
    「クラスを変更する理由は一つ」

    変更単位でクラスを分割する
  2. オープン・クローズの原則
    「修正に対して閉じて、変更に対して開いている」

    仕様変更のとき、コードの修正でなく、拡張(クラスの継承)で実現する
  3. リスコフの置換原則
    「サブクラスはスーパークラスに置換可能」

    クラスを親クラスに変更してもシステムは実行可能
  4. 依存関係逆転の原則
    「抽象化部分は実装の詳細に依存しない。実装の詳細が抽象部分に依存する。」

    モジュールの呼び出し側はモジュールの詳細に関心ない。サブクラスの違いで詳細を実装する。
  5. インターフェース分離の原則
    「利用側にメソッドの依存を強要しない。」

    インターフェースは開発者の利便ではなく、利用者側の利便性で作成する