Más contenido relacionado
Similar a 第2回 モデリング勉強会 (20)
第2回 モデリング勉強会
- 5. 【オープン・クローズドの原則】
(the Open-Closed Principle )
• 『ソフトウェアの構成要素は
拡張に対して開いていて
修正に対して閉じていなければならない。』
• オープンとは?
→ モジュールの振る舞いを拡張できる。
• クローズとは?
→ モジュールの振る舞いを変更しても
そのソースやバイナリは影響を受けない。
• 抽象的な原則のくせに一番大事。
オブジェクト指向設計の核心です。
- 6. 【リスコフの置換原則】
(the Liskov Substitution Principle)
• 『派生型はその基本型と
置換可能でなければならない。』
• 使う側から言うと、基本型を引数にとる関数に、ど
んな派生型のインスタンスをもらっても気にしない
で使えないとダメ。
• 実装側から言うと、派生クラスがその基本クラスで
使われるところにおいても、正常に動作することを
保証しないとダメ。
- 7. 【依存関係逆転の原則】
(the Dependency Inversion Principle)
• 『上位のモジュールは下位のモジュールに
依存してはならない。
どちらのモジュールも「抽象」に
依存すべきである。』
• 『「抽象」は実装の詳細に依存してはならない。
実装の詳細が「抽象」に依存すべきである。』
• 手続き型でよく出てしまう好ましくない構造。
• ここで言う上位・下位は継承のこと
だけを指しているわけではありません。
- 8. 【インターフェイス分離の原則】
(the Interface Segregation Principle)
• 『クライアントに、クライアントが
利⽤しないメソッドへの依存を
強制してはならない。』
• クライアントは複数のインターフェイスを
利⽤するけど、そのすべてが互いに
強い関連を持っているわけではない。
• すべてのインターフェイスを
1つのクラスに押し込めてしまうことはやめ
関連性持ったインターフェイスは
グループ化して抽象基本クラスとして
分けて利⽤すべき。