デザインパターン - OOD デザイン原則 (4) - 「インターフェース分離の原則」

デザインパターン - OOD デザイン原則 (1) - 「オープンクローズ原則」

デザインパターン-OOD設計原則(2)-「リスコフ置換原則」

デザインパターン - OOD デザイン原則 (3) - 「依存関係逆転の原則」

デザインパターン - OOD デザイン原則 (5) - 「合成集約と再利用の原則」




リスコフ置換原則 (LSP) - バーバラ・リスコフ

:型 S のオブジェクト o1 ごとに型 T のオブジェクト o2 があり、T 用に書かれたすべてのプログラム P で、o2 を o1 に置き換えた後もプログラム P の動作と機能は変わらない場合、S は T のサブタイプになります。


より一般的な説明: サブタイプは、親タイプを呼び出すクライアント プログラムの動作を変更することなく、親タイプを完全に置き換えることができます。


リスコフ置換原則に違反する典型的な例は、正方形と長方形の関係です。このような例については、オブジェクト デザインの原則について話すときに非常に長くなるので、ここでは繰り返しません。この例から得られる教訓は、現実世界の継承の例をプログラムの世界に直接適用することはできないということです。しかし、設計の基準として、現実世界の多くの法律やルールを無視することはできません。たとえば、クジラと魚はどのような関係に属するでしょうか。生物学的な観点からすれば、クジラは魚類ではなく哺乳類に属するはずです。はい、手続きの世界でも同じ結論に達することができます。クジラが魚を継承することを許可されれば、リスコフ代替原則に完全に違反することになる。魚が親種であるため、えら呼吸や産卵による繁殖など、クジラにはない特徴が多くあります。では、この二人には何か共通点があるのでしょうか?はい、つまり、それらはすべて水中で「泳ぐ」ことができます。プログラミングの観点から見ると、それらはすべて、「泳ぐ」動作をサポートするインターフェイスを共同で実装します。



おすすめ

転載: blog.csdn.net/airingyuan/article/details/49150571