【結論】
・SOLIDの原則とは、
アプリケーションの拡張性・保守性などを
向上させる為の概念
・下記5つの頭文字で命名されている
S: 単一責任の原則(Single Responsibility Principle)
O: オープン・クローズドの原則(Open/Closed Principle)
L: リスコフの置換原則(Liskov Substitution Principle)
I: インタフェース分離の原則(Interface Segregation Principle)
D: 依存性逆転の原則(Dependency Inversion Principle)
【目次】
- SOLIDの原則とは
- S: 単一責任の原則(Single Responsibility Principle)
- O: オープン・クローズドの原則(Open/Closed Principle)
- L: リスコフの置換原則(Liskov Substitution Principle)
- I: インタフェース分離の原則(Interface Segregation Principle)
- D: 依存性逆転の原則(Dependency Inversion Principle)
【本題】
SOLIDの原則とは
SOLIDの原則とは、拡張性や保守性を高める為の
プログラミングの概念の一つです。
下記の5つで構成されており、
それぞれの頭文字から名付けられている
S: 単一責任の原則(Single Responsibility Principle)
O: オープン・クローズドの原則(Open/Closed Principle)
L: リスコフの置換原則(Liskov Substitution Principle)
I: インタフェース分離の原則(Interface Segregation Principle)
D: 依存性逆転の原則(Dependency Inversion Principle)
S: 単一責任の原則(Single Responsibility Principle)
クラスを変更する理由は複数存在してはいけない
という考え方
クラスが持つ役割を一つに絞ることで、
コードを改修した際に、どの仕様を変更したのか明確になる。
例えば、一般ユーザーと管理ユーザーで
コードを分離するなどが挙げられます。
これにより下記の様なメリットがある
・影響範囲を判別しやすくなる
・依存関係が明確になる
・コンフリクトしにくくなる
O: オープン・クローズドの原則(Open/Closed Principle)
クラスは拡張に対して開かれていて、
修正に対して閉じていなければならない
という考え方
L: リスコフの置換原則(Liskov Substitution Principle)
子クラスは親クラスと置換可能でなければならない
という考え方
例えば、Aというクラスがあって、 それを継承したBというクラスがあったとします。
その場合、下記のコードを・・・
|ruby| A.split ||<
以下の様に置き換えても影響が出ない状態を指します。
|ruby| B.split ||<
I: インタフェース分離の原則(Interface Segregation Principle)
クライアントが使用しないメソッドには
依存させてはならない
という考え方
D: 依存性逆転の原則(Dependency Inversion Principle)
抽象に依存しなければならない
という考え方
《今日の学習進捗(3年以内に10000時間に向けて)》
学習開始からの期間 :106日
今日までの合計時間:990h
一日あたりの平均学習時間:9.4h
今日までに到達すべき目標時間:968h
目標との解離:22h
「10,000時間」まで、
残り・・・「9010時間!」