More Related Content
Similar to 第ⅲ部:Clean architecture 設計の原則
Similar to 第ⅲ部:Clean architecture 設計の原則 (6)
第ⅲ部:Clean architecture 設計の原則
- 3. 第Ⅲ部:設計の原則
SOLID
- 単一責任の原則
- (SRP:Single Responsibility Principle)
- 変更する理由がたった一つだけになるように
- オープン・クローズドの原則
- (OCP:Open-Closed Principle)
- 拡張に対しては開いていて、修正に対しては閉じていなければならない
- リスコフの置換原則
- (LSP:Liskov Substitution Principle)
- 個々のパーツが交換可能となるような契約に従わなければいけない
- インターフェイス分離の原則
- (ISP:Interface Segregation Principle)
- 使っていないものへの依存を避けるべき
- 依存関係逆転の原則
- (DIP:Dependency Inversion Principle)
- 上位レベルの方針の実装コードは、下位レベルの詳細の実装コードに依存すべきではなく、逆に詳
細側が方針に依存すべきである
- 22. 第3章:リスコフの置換原則(LSP)
- 1988年に Barbara Liskov が派生型について定義した
- ざっくりまとめると「派生クラスはその元となったベースクラスと置換が可能でなければならない」
- 派生クラスでオーバーライドされたメソッドはベースクラスのメソッドと同じ数・型の引数ととらなけれ
ばならない
- 派生クラスでオーバーライドされたメソッドの返り値の型はベースクラスのメソッドの返り値の型と同じ
でなければならない
- 派生クラスでオーバーライドされたメソッドの例外はベースクラスのメソッドの例外と同じ型でなけれ
ばならない
- 28. 第5章:依存関係逆転の原則(DIP)
安定した抽象
- 変化しやすい具象クラスを参照しない
- 型ありでも動的でも interface/abstractを参照する
- 一般的にはAbstract Factoryパターンを使うしかない
- 変化しやすい具象クラスを継承しない
- 上記と同じ
- extendsの参照先は抽象クラスであるべき
- 具象関数をオーバーライドしない
- 具象関数はソースコードの依存を要求することが多い
- 関数を抽象関数にして、それに対する複数の実装を用意する
- リスコフの置換原則に違反しないことも求めています
- 変化しやすい具象を名指しで参照しない
- 上記の原則を言い換えただけ
- 30. 第Ⅲ部:まとめ
- 単一責任の原則
- (SRP:Single Responsibility Principle)
- 変更する理由がたった一つだけになるように
- オープン・クローズドの原則
- (OCP:Open-Closed Principle)
- 拡張に対しては開いていて、修正に対しては閉じていなければならない
- リスコフの置換原則
- (LSP:Liskov Substitution Principle)
- 個々のパーツが交換可能となるような契約に従わなければいけない
- インターフェイス分離の原則
- (ISP:Interface Segregation Principle)
- 使っていないものへの依存を避けるべき
- 依存関係逆転の原則
- (DIP:Dependency Inversion Principle)
- 上位レベルの方針の実装コードは、下位レベルの詳細の実装コードに依存すべきではなく、逆に詳細側が
方針に依存すべきである