達人に学ぶソフトウェアの構造と設計 9,10,11章
by
kazuki
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
クリーンアーキテクチャ 達人に学ぶソフトウェアの構造と設計 9,10,11章 kazuki ijima
Slide 2
Slide 2 text
9,10,11章 リスコフの置換原則(LSP) インターフェース分離の原則(ISP) 依存関係逆転の原則(DIP)
Slide 3
Slide 3 text
リスコフの置換原則 「ここで望まれるのは、次に述べるような置換可能な性質である:s型のオブジェクトo1の 各々に対応するT型のオブジェクトo2が1つ存在し、Tを使って定義されたプログラムPに 対してo2の代わりにo1を使ってもPの振る舞いが変わらない場合、SはTの派生型であ ると言える」
Slide 4
Slide 4 text
リスコフの置換原則 置換できる例 図9-1 置換できない例 図9-2
Slide 5
Slide 5 text
リスコフの置換原則 継承の使い方の指針 ↓ インターフェースと実装に関するソフトウェア設計の原則
Slide 6
Slide 6 text
リスコフの置換原則 インターフェースが置換できない例 purplecab.com/driver/bob/.... /distination/ORD purplecab.com/driver/bob/.... /dist/ORD
Slide 7
Slide 7 text
インターフェース分離の原則 図10-1 Userと関係ないopの変更であっても、 再コンパイル・再デプロイが必要 図10-2 インターフェースを噛ませ、Userと関係ないopの変更であれば、 再コンパイル・再デプロイが不要
Slide 8
Slide 8 text
インターフェース分離の原則 必要としないモジュールに依存することは一般的に有害とされる 上位のアーキテクチャレベルにおいても同様 図10-3
Slide 9
Slide 9 text
依存関係逆転の原則 「ソースコードの依存関係が(具象ではなく)抽象だけを参照しているもの。 それが、最も柔軟なシステムである」 具象に依存するべきではない → 変化しやすいため 変化しづらいものへの依存は許容
Slide 10
Slide 10 text
依存関係逆転の原則 ● 変化しやすい具象クラスを参照しない ○ 抽象インターフェースを参照する ○ Abstract Factoryパターンを使う ● 変化しやすい具象クラスを継承しない ● 具象関数をオーバーライドしない ● 変化しやすい具象を名指しで参照しない
Slide 11
Slide 11 text
依存関係逆転の原理 Abstract Factory 具体的な実装には注目せず、インターフェースに注目する インターフェースだけを使って、具象をあつかう 処理 抽象 → 具象 依存性 具象 → 抽象 (※依存関係逆転の原則の名前の由来)
Slide 12
Slide 12 text
依存関係逆転の原理 具象コンポーネント