[745] Re:分析と設計
投稿者:774RR
2007/02/20 02:13:25
んと、他人の意見だけ募集して自分の意見を出さないのはアレげなので私の見解。
LSP=同一基底クラスから派生したオブジェクトは、振る舞いが同一であると契約する
契約=派生クラス実装者と基底クラス利用者の間で取り決め
ってことなので、そもそも struct bird { virtual void fly()=0; }; って設計した以上
bird 派生クラスは全て「飛べる」必要があり、飛べないものをこいつから派生したらダメ。
1.だから、この bird からダチョウクラスを派生させるのはダメ。
2.もしダチョウクラスを bird から派生させたいのであれば bird の実装を再検討。
ではどのような bird にすればよいか、は要件に応じて再分析が必要。
その再分析の際に「特定の設計原理(銀の弾丸)」ってものはありえない。
ただその分析の結果の実装は LSP に則るべし。
ってことなんですけど。