見出し | OOP
オブジェクト指向開発(Object Oriented Programming)
アジャイル開発の基本ステップ
- 問題を発見する
- 原則を適用して問題を分析する
- 適切なパターンで問題を解決する
SOLID原則
- SRP: The Single Responsibility Principle(単一責任の原則)
- OCP: The Open-Closed Principle(オープン・クローズドの原則)
- LSP: The Liskov Substitution Principle(リスコフの置換原則)
- ISP: Interface Segregation Principle(インターフェース分離の原則 / segregate=分離する)
- DIP: Dependency Inversion Principle(依存関係逆転の原則)
SOLID 詳細解説
-
SRP(単一責任の原則)
クラスの修正理由は1つに限定する。2つ以上持ってはいけない。 -
OCP(オープン・クローズドの原則)
「拡張」に対してはオープン(開いている)で、「修正」に対してはクローズド(閉じている)であるべき。 -
LSP(リスコフの置換原則)
派生型は基本型と置換可能でなければならない。 -
ISP(インターフェース分離の原則)
(説明未記載。実装時には不要な依存を避け、小さなインターフェースに分割する。) -
DIP(依存関係逆転の原則)
利用する側=上位クラスがインターフェースを定義し、利用される側=下位クラスがそれに従う。
上位クラスは下位クラスに影響されてはいけない。
上位クラスも下位クラスも具体的なクラスではなく、抽象(インターフェース/抽象クラス)に依存するべき。
アプリケーションの方針を決めている上位レベルモジュールが、実装の詳細を担当している下位レベルのモジュールに影響を与えるのが筋である
「アジャイルソフトウェア開発の奥義」(ロバート・C・マーチン p164)
DI(依存性注入)
依存関係逆転を実現する有効なパターンの一つがStrategyパターン。
これを体系的に行う方法がDI(Dependency Injection)。