2019-03-22 クリーンアーキテクチャーの読書メモ(8) 読書メモ クリーンアーキテクチャー §9 LSP: リスコフの置換原則 1988年 Barbara Liskov S 型のオブジェクト o1 の各々に、対応する T 型のオブジェクト o2 が 1 つ存在し、 T を使って定義されたプログラム P に対して o2 の代わりに o1 を使っても P の振る舞いが変わらない場合、 S は T の派生型である(『アジャイルソフトウェア開発の奥義』) 正方形・長方形問題 リスコフの置換原則を満たしていない リスコフの置換原則は敬称の使い方の指針と考えられていたが、インターフェースと実装に関するソフトウェア設計の原則になっている アーキテクチャーがリスコフの置換原則を満たさない例 業界統一の API パスパターン 一部の企業が API を満たさないように設計する API を呼び出す側はその一部の企業のために if 文をモジュールに追加して呼び出しを調整する(複雑になる) 一部の企業が業界の他の企業を買収する 他の企業の API もあわせることに… API 呼び出し側の複雑性が高くなる リスコフの置換原則を満たしている例 正方形・長方形問題