これはリスコフ置換原則か?

@uskz 先生と @PG_kura 先生の議論をお楽しみ下さい。
1
くっくっkura 🇯🇵🦀 @PG_kura

@uskz お休みなさい!ありがとうございました!

2010-05-31 03:58:00
梶本裕介 @uskz

A Behavioral Notion of Subtypingを読まないと・・・

2010-05-31 04:51:46
野比無能丸 @cknbstr

@uskz ご指摘ありがとうございます。LSPはa.func()と記述している箇所をb.func()とそのまま置換できること、という認識だったのでb.func()が隠蔽された時点で違反するのではと思いました。

2010-05-31 11:36:09
くっくっkura 🇯🇵🦀 @PG_kura

仕事の合間を縫って LSP関連のページを見てみる。どうもこれまでとんでもなく間違えて理解していたみたい。

2010-05-31 13:40:29
くっくっkura 🇯🇵🦀 @PG_kura

いくつか読んでみたけども昨夜 .@uskz さんが言っていた通りのことが書いてあるなぁ~。

2010-05-31 13:41:41
くっくっkura 🇯🇵🦀 @PG_kura

確信して理解していただけにこれは凹む・・・。

2010-05-31 13:42:06
くっくっkura 🇯🇵🦀 @PG_kura

とかく、@uskz さんありがとうございました!

2010-05-31 13:43:45
くっくっkura 🇯🇵🦀 @PG_kura

夜中の僕の勘違いっぷりを見たい奇遇な方はこちらをどうぞ! http://bit.ly/cagMFD @melpon さんまとめどうもです!

2010-05-31 13:46:58
くっくっkura 🇯🇵🦀 @PG_kura

しかし結構長い期間誤解してたなー。

2010-05-31 13:51:35
野比無能丸 @cknbstr

@PG_kura LSPについて私も@PG_kuraさんとおそらく同様の勘違いをしていたようですね。申し訳ないです。C++のようにprivate virtual的なことができてしまうとA* a=&b;a->func()でBのprivateなメソッドを呼べてしまうからでしょうか

2010-05-31 16:28:33
くっくっkura 🇯🇵🦀 @PG_kura

@cknbstr いえいえ、おかげで僕も間違いに気づけました。

2010-05-31 16:38:38
くっくっkura 🇯🇵🦀 @PG_kura

@cknbstr 僕の場合はC→Java→C++の順に学んできたものでJavaとC++のOO部分の差異には当時敏感でした。その頃の勘違いをずーっと引きずっていたのかもしれません。しかし言語ってのはポジションも文化も違うので今ではどちらの言語仕様も妥当だと思いますです。

2010-05-31 16:40:08
野比無能丸 @cknbstr

@PG_kura 言語間の違いを知ることで付随する概念のより深い理解につながりますよね

2010-05-31 16:55:27
野比無能丸 @cknbstr

理解の甘さにより見習いニセプログラマに降格しますた

2010-05-31 16:57:21
梶本裕介 @uskz

@PG_kura ぼくはDelphi->C++->Javaの順でしたがDelphi->C++のときはやっぱりかなりDelphiの文化に引っ張られました。そのおかげでC++からJavaへは最初から郷に入れば郷に従えの精神で比較的先入観押さえて入れた気がします

2010-05-31 17:10:36
くっくっkura 🇯🇵🦀 @PG_kura

@uskz Delphi から始めたのですか。なるほど。もし何も考えず C++ の後に Java やると、先入観が一番足かせになっていたかもしれないですね。

2010-05-31 17:18:01