お久しぶりです、らべねこです。
私は今「アジャイルソフトウェア開発の奥義」という本を読んでいます。
その中のSOLID原則の部分がよく分からなかったので、私なりにまとめて理解したものをQiitaに投稿しています。
今回は第4回です。
第1回はこちら https://qiita.com/labeneko/items/3033c9a0fa0772a864c2
第2回はこちら https://qiita.com/labeneko/items/92fd93ed1e4a07565869
第3回はこちら https://qiita.com/labeneko/items/6b41d717cd2a6b1d472b
間違い等ありましたらご気軽にコメントください。
SOLID原則とは
多くの設計で用いられている考え方を原則としてまとめたものです
以下の5つの原則があります
S:SRP、単一責任の原則
O:OCP、オープン・クローズドの原則
L:LSP、リスコフの置換原則
I:ISP、インタフェース分離の原則
D:DIP、依存性逆転の原則
第4回は、インタフェース分離の原則についてまとめました
I:インタフェース分離の原則(ISP: The Interface Segregation Principle)
守るべきルール
クライアントに、クライアントが利用しないメソッドへの依存を強制してはならない
ルールを守らないとどのような問題が起きるか
- インターフェースが肥大化することになり、肥大化したインターフェースを継承したクラスは、関係のないメソッドの実装をしなければならなくなります。結果的に、継承先でメソッドを退化させてしまうことになり、リスコフの置換原則に違反することになります
- 関係のない定義をインポートしなければならないので、「不必要な複雑さ」や「不必要な繰り返し」が発生してしまいます。
どうすべきか
- クラスは、実際に自分が利用すべきメソッドだけに依存すべきです
- そのためには、インターゲースを分離して、必要なインターフェースのみ継承すべきです
- 必要なインタフェースが複数になった場合は、それらのインターフェースを多重継承するのが良いでしょう(多重継承以外にもやり方はあります)
第5回では、依存性逆転の原則について説明します