💭

SOLID原則の定義だけをまとめた

2023/05/25に公開

参考書

https://peaks.cc/books/iOS_architecture
こちらの書籍を用いて学習しました。

問題のあるコードをSOLID原則に則って、修正行くように記載されており、大変わかりやすく、理解することができました。ただ、どの修正がどの原則だったかを忘れてしまいそうなので、定義だけ書き記しておく。

S: 単一責任の原則(Single responsibility principle)

クラス(型)を変更する理由は、2つ以上存在してはならない。

O: 開放閉鎖の原則(Open–closed principle)

クラスは(型)は拡張に対して開いていて、修正に対して閉じていなければならない。
拡張に対して開いている(Open):仕様要求が変更されても、モジュールに新たな振る舞いを追加することでその変更に対処できる。
修正に対して閉じている(Closed):モジュールの振る舞いを拡張しても、そのソースコードやバイナリコードは影響を受けない。
簡単にいうと、「変わらない部分」と「変わる部分」を分離しよう ということ。

L: リスコフの置換原則(Liskov substitution principle)

継承ルールについて述べた原則。
継承に対する問題解決手段として、Protocol-Oriented Programming や型 が導入されている。
継承を使いたくなったときは、別の手段で解決できないかを考える。

I: インタフェース分離の原則(Interface segregation principle)

クライアントに、クライアントが利用しないメソッドへの依存を強制してはならない。

D: 依存性逆転の原則(Dependency inversion principle)

上位レベルのモジュールは下位レベルのモジュールに依存すべきではない。両方とも抽象に依存すべきである。
抽象は詳細に依存してはならない。詳細が抽象に依存すべきである。


https://qiita.com/zrn-ns/items/48faa5eccfb03bb8d622

こちらの記事がサンプルコードを用いて、シンプルにまとまっているので、参考になるかもしれません。


他にも良い方法があれば、コメントいただけると大変うれしいです。
良かったと思ったら、いいねやTwitterのフォローよろしくお願いいたします!

https://sites.google.com/view/muranakar
個人でアプリを作成しているので、良かったら覗いてみてください!

Discussion