SOLID原則とは

概要

SOLID原則(ソリッドげんそく)とは、オブジェクト指向プログラミングにおける良い設計を行うための5つの基本原則です。
この原則を守ることで、コードは「理解しやすく」「修正しやすく」「再利用しやすい」ものになります。

正式名称

  1. Single Responsibility Principle(シングル・レスポンシビリティ・プリンシプル)
    → 単一責任の原則
  2. Open/Closed Principle(オープン・クローズド・プリンシプル)
    → 開放/閉鎖の原則
  3. Liskov Substitution Principle(リスコフ・サブスティチューション・プリンシプル)
    → リスコフの置換原則
  4. Interface Segregation Principle(インターフェイス・セグリゲーション・プリンシプル)
    → インターフェイス分離の原則
  5. Dependency Inversion Principle(ディペンデンシー・インバージョン・プリンシプル)
    → 依存性逆転の原則

略称

  • SRP(エス・アール・ピー) … 単一責任の原則
  • OCP(オー・シー・ピー) … 開放/閉鎖の原則
  • LSP(エル・エス・ピー) … リスコフの置換原則
  • ISP(アイ・エス・ピー) … インターフェイス分離の原則
  • DIP(ディー・アイ・ピー) … 依存性逆転の原則

特徴

  • 保守性:変更に強くなる
  • 再利用性:部品のように使い回せる
  • 可読性:役割がはっきりして分かりやすい
  • 柔軟性:新機能を追加しやすい
  • テスト容易性:単体テストしやすくなる

具体例

  • SRP(単一責任の原則)
    例:ユーザー管理クラスが「ログ保存」も担当している → 責任が2つあるので、ログ保存は別クラスに分ける
  • OCP(開放/閉鎖の原則)
    例:決済処理に新しい支払い方法を追加 → 既存コードを修正せず、新しいクラスを追加して対応
  • LSP(リスコフの置換原則)
    例:鳥クラスを継承したペンギンクラスが「飛ぶメソッド」を使えない → 継承の設計が誤っている
  • ISP(インターフェイス分離の原則)
    例:プリンタ用インターフェイスに「FAX送信メソッド」が含まれている → 使わない機能を押しつけているので分割すべき
  • DIP(依存性逆転の原則)
    例:高レベルの注文処理クラスが「MySQLクラス」に直接依存 → 「DBインターフェイス」を間に挟んで依存を逆転させる

関連用語

用語解説
オブジェクト指向(OOP)現実のモノや概念を「オブジェクト」として扱い、プログラムを組み立てる考え方
デザインパターンよくある設計問題の再利用可能な解法
リファクタリング外部から見たプログラムの動作を変えずに、コードの内部を改善する作業
カプセル化オブジェクト指向におけるデータと処理をひとまとめにして、外部から直接触れないように守る仕組み
抽象化共通する特徴だけを取り出してシンプルに表現すること
タイトルとURLをコピーしました