[711] Re:オブジェクト指向「初」入門
投稿者:kit
2007/02/20 02:13:25
> いや恐れ入った。
> 「オブジェクトが is-a であるか」は守られなくてもいいのか。
その通りです。
もちろん、「オブジェクトが is-a であるか」と「オブジェクトの『振舞い』
が is-a であるか」の二つが矛盾しない場合は問題ありません。しかし、矛盾
した場合に優先すべきなのは、LSP の方です。
しかしどうやら CES さんは、矛盾した場合、LSP よりも前者を優先すべきだ
とお考えのようですね。
Robert C. Martin がこの文書を発表してから、もう10年近く、Liskov から
数えれば、もう15年以上経っており、私は既に常識的な知識だと思っていまし
たが、驚かれたということは、どうやらそうではなかったようですね。そも
そも LSP や、この文書が有名になったのは、「オブジェクトが is-a である
か」という判定条件が成り立たない場合があるということを、はっきりと示
しているからだと思うのですが。
is-a だけで済むのであれば、わざわざ原則として掲げる必要も、文書で解説
する必要もありません。
失礼ながら、御自身の考えを他人の掲示版で開陳されるよりも先に、もう少し
オブジェクト指向関係の良書で勉強された方が良いのではないでしょうか。
あるいは、もし、「オブジェクトが is-a であるか」は LSP よりも優先する
という考えをどうしても主張されたいのであれば、掲示版はそもそも不向きな
メディアだと思います。
なぜ LSP よりも優先するのかを、適切な例を含めた上で、ご自分の Web ペー
ジで解説された方が良いと思いますよ。
もし、Barbara Liskov や Robert C. Martin も優れた考えであるのなら、
独立した文書として公開する価値が十分あると思います。
少なくともこれまでのところ、私は CES さんの意見に説得される可能性は
ありません。CES さんの考えを証明する具体的な例を一切目にしていません
ので。前の投稿でも書きましたが、私は机上の空論は嫌いですし、具体的な
例のない議論に説得されることは決してありません。
(ぱ)さんも同様ではないかと思います。
> 「正方形は長方形のサブクラスであるか?」という質問に、唯一の正解はあり
> ません。答えは、数学に厳密である必要がある場合には YES 、そうでない場
> 合には NO になります。
あるアプリケーションが、Robert C. Martin が例に示しているような
条件と、数学的に厳密であるという必要があるという条件のどちらも
同時に満たしている必要がある場合はどうすれば良いのでしょうか?
もちろん、答えは NO です。
従って、上に書いた CES さんの答え「数学に厳密である必要がある
場合には YES」は、条件に抜けがある誤った答であるということに
なります。
私には、CES さんが LSP の本質を理解していないように見えますね。
理解しているなら、上のような文章が出てくる筈はありません。