はじめに
オブジェクト指向型プログラミングを再学習します。
S.O.L.I.Dとは?
オブジェクト指向プログラミングの5の原則のこと
(1) S - 単一責任の原則 (Single Responsibility Principle)
(2) O - 開放・閉鎖原則 (Open/closed principle)
(3) L - リスコフ置換原則 (Liskov substitution principle)
(4) I - インタフェース分離の原則 (Interface segregation principle)
(5) D - 依存性逆転の原則 (Dependency inversion principle)
1. SRP (単一責任の原則:Single Responsibility Principle)
A class should have one and only one reason to change, meaning that a class should have only one job.
「クラスはただ一つの理由で変更すべきだ。つまり、クラスは一つの機能だけを持っているようにすること。」
SRP原則を適用すれば責任領域が明確になりますので、一つの責任を変更することが次々と他の責任の変更になり続ける連鎖作用を防止できます。
更に、責任を適切に分配することにより、コードの可読性の向上,メインテナンスに容易という利点があります。
2. OCP: 開放・閉鎖原則 (Open/closed principle)
オープンクローズドの原則とは、ソフトウェアの構成要素は拡張に対しては開いていなければならず、修正に対しては閉じていなければなりません。
この原則を達成すると、そのソフトウェアの特定の構成要素は、他の構成要素の影響を全く受けなくなります。
また、機能追加をする際も既存の構成要素が受ける影響は限りなく少なくなります。
3. リスコフ置換原則 (Liskov substitution principle)
リスコフの置換原則で望まれるのは、下の例で登場するような置換可能な性質だそうです。 クラスAはクラスBを使っていて、そのBをCに置き換えた際に振る舞いが変わらない場合、CはBの派生形である。 と言えます。
4. インターフェイス分離の原則 (Interface segregation principle)
インターフェイス分離の原則では、必要としないものとの依存を切り離し、予期せぬトラブルの発生を抑えれます。
5. 依存性逆転の原則 (Dependency inversion principle)
依存関係逆転の原則は柔軟なシステムの作り方を教えてくれます。 最も柔軟なシステムは、ソースコードの依存関係がインターフェイスだけを参照している場合です。
参考サイト
オブジェクト指向できていますか?
何かのときにすっと出したい、プログラミングに関する法則・原則一覧