VB.NETを咥えてWindows.Formsをつつく5−継承2。継承の甘い罠にご注意♪2009-03-20 Fri 19:02
前回の続きピヨッ。それにしてもボクは納得できないピヨ。だってぇ、ボクその様に設計して正しく実装したピヨ。
ドリィちゃん「それを言われると・・・説明し辛いわねぇ。貴方が微妙なもの作るからεπιστημηさんも中の人も困っていたじゃない。こういった間違いは現場でも起こるんだけど一番厄介ねぇ・・・」 ちゃんと動いているんだからいいじゃん♪ボクこの逃走ボタンをバージョンアップして、次はキー入力も受け付けないようにしようと思っているんだ♪今のままだとキー入力で押下されるからね♪ ドリィちゃん「どういったらいいんだろう・・・そうだ!実装する際に使う場面考えた?どういう局面で逃走ボタンは使うの?」 えっ?・・・・・いやぁ、面白いと思って、コンパイルしたらちゃんと動いていたから・・・えっと、使う場面は後で考えるピヨォ・・・ ドリィちゃん「それは継承の甘い罠❤に嵌っているわ。確かに継承は便利な機能で、覚えたての頃は誰でも使いたくなるけど、もともとプログラム言語は何のためにあるのかしら?」 それは・・・誰かの仕事を助けて社会の役に立つためピヨ。 ドリィちゃん「?!貴方の口からそんな真面目な答えが帰ってくるとは思わなかった。ちょっと驚いたたわ。それはさて置き。その答えは正解よ。という事は、目的があって使うものよね?」 あっそうか!ボクはプログラムやコンパイラの機能だけを考えて作ったから、手段が目的になっていたんだね。 ドリィちゃん「そうよ。わかればよろしい❤遊びの時はいいんだけど、その調子で設計を考えたらプロジェクトは破綻するわよ。だから、プログラミングを学ぶ時は文法を機械的に覚えたり、使いたい機能を設計に反映したりせず、常に目的を意識して機能を選択しないと駄目よ。とくに継承は生産性が高いから、逆に広い意味でのバグも効率的に生産できてしまうわけよ。」 わかったよドリィちゃん。継承の文法じゃなくて、実務を意識した使い方を追求していくピヨ♪ ドリィちゃん「じゃあね、今回は特別に継承の整合性を判断するための項目を教えてあげる❤」 【5つの継承チェック項目】
ドリィちゃん「大まかなチェックはこれでいいと思うわ。この5つの項目をパスできない場合継承以外の手段も検討してね❤コツはコードベースで物事を考えないで、現実的に考える事よぉ。あと、クラスの階層はあまり深いと駄目よ!普通は2,3を目安にしてね。」 う〜〜〜ん。ドリィちゃんボクこれじゃあ分からないよ。コードもないしね・・・ボク具体例がないと分からないピヨォ。 ドリィちゃん「そっか。仕方ないわね。次回以降サンプルコードを交えて具体的に説明するわ。」 わーい♪そうこなくっちゃ♪ ドリィちゃん「次回へ続く。」 |
この記事のコメントいくつかツッコミ
- 親クラスと子クラス 親/子という言い回しは包含関係で用いられることが多く、継承関係では避けたほうがいい。 - コードの共有数だけで考えていませんか? わからん。コードの共有数てなに? 何を「考えていませんか」なの? - 日本語として正しい継承関係ですか? わからん。「日本語にとって」てどーゆー意味? - そのクラスが持つメソッドは本当に同じ意味ですか? わからん。何と何が同じ意味だって? - 例えば、Moveなどの汎用的... わからん。「たとえ」になってない。 全般に、(これがビギナ向けに書いたものなら特に)もっと言葉を選ばなきゃダメよ。 自分だけ解っても意味ないから。 επιστημηさん有難うございます。
記事をご指摘に基づいて更新します。
2009-03-21 Sat 14:16 | URL | インドリ #-[ 内容変更]
|
コメントの投稿 |
||
|
|
||
| 管理者だけに閲覧 | ||
|
|
||
この記事のトラックバック |
|
| 無差別に技術をついばむ鳥 |
|