[712] Re:オブジェクト指向「初」入門
投稿者:CES
2007/02/20 02:13:25
>もちろん、「オブジェクトが is-a であるか」と「オブジェクトの『振舞い』
>が is-a であるか」の二つが矛盾しない場合は問題ありません。しかし、矛盾
>した場合に優先すべきなのは、LSP の方です。
>しかしどうやら CES さんは、矛盾した場合、LSP よりも前者を優先すべきだ
>とお考えのようですね。
どちらかと言えばそうかもしれません。
LSP を守ることも重要ですが、まずはオブジェクトの is-a を優先し、その上で LSP が守られるように都合をつけるべきだと思います(結果的には、両方守るべきです)。
>Robert C. Martin がこの文書を発表してから、もう10年近く、Liskov から
>数えれば、もう15年以上経っており、私は既に常識的な知識だと思っていまし
>たが、驚かれたということは、どうやらそうではなかったようですね。
俺がプログラミングを初めてまだ7年、オブジェクト指向が分かってきたのはここ1、2年ほどのことですのでね。
>そもそも LSP や、この文書が有名になったのは、「オブジェクトが is-a である
>か」という判定条件が成り立たない場合があるということを、はっきりと示
>しているからだと思うのですが。
>is-a だけで済むのであれば、わざわざ原則として掲げる必要も、文書で解説
>する必要もありません。
>失礼ながら、御自身の考えを他人の掲示版で開陳されるよりも先に、もう少し
>オブジェクト指向関係の良書で勉強された方が良いのではないでしょうか。
よろしければ、おすすめの本を紹介していただけないでしょうか。
>少なくともこれまでのところ、私は CES さんの意見に説得される可能性は
>ありません。CES さんの考えを証明する具体的な例を一切目にしていません
>ので。前の投稿でも書きましたが、私は机上の空論は嫌いですし、具体的な
>例のない議論に説得されることは決してありません。
>(ぱ)さんも同様ではないかと思います。
その言葉はそっくりお返しします。
正方形は長方形のサブクラスであるとしても成り立つ場合は既に書きました。
is-a と LSP をどうしても両立させられない例を一つでも出していただけませんか。