[699] Re:多態性(ポリモーフィズム)について
投稿者:(ぱ)
2007/02/20 02:13:25
>はじめまして。happieと申します。
はじめまして。
>また『ポインタの完全制覇』や「疑り深いあなたのためのオブジェクト指向再入門」
>については、本質的なところを突いているため大変興味深く読ませていただきました。
ありがとうございます。
>(ぱ)さんは、ポリモーフィズムに関してあまり記述がなかったように思いますが、
>どのようにお考えですか。
ポリモルフィズムは重要な概念だと思います。
「疑り深い~」でポリモルフィズムについて触れていないのは、今のところまで書いて
力尽きたというか、優先度がそれほど高くないと思ったからです。
マルチプルインスタンスについては、オブジェクト指向を普通に使っている人なら
誰でも普通に使っているにもかかわらず、そして初心者は結構そこでつまずくにも
関わらず、ほとんど誰もそれを重要であると声に出して言わないので、
これはまずいだろ、と思いあれを書いたわけですが、インタフェースと
ポリモルフィズムに関しては、私は重要だと思いますし、誰もが重要だと言いますから、
特に声を上げる必要もないかなあ、と。
ただ、ポリモルフィズムが実際にどういう場面でどこまで使えるか、という点に
ついては注意を払う必要があるとは思います。
最近、この掲示板の[649]にも書いていますが、「CADを作るとき図形にdraw()
メソッドを付けるのは正しいのか」という話を、私はしょっちゅう出しています。
そちらのblogも拝見しました。「業務アプリケーションにはオブジェクト指向は
向かない」というのは同意見です。まあ業務アプリでも、フレームワークや、
アプリケーションの「機能」の側でOOを使うところはたくさんありますが、
「データ」に処理は結びつかないと思います。
業務アプリでは、たくさんのテーブルがあり、また、さらにたくさんの「機能」が
あります。そして、しょっちゅう機能追加を行っても、そうそうテーブル定義には
変更を加えません。データが何よりえらいのであって、処理がデータに依存しても、
データが処理に依存してはいけない。これは基本的には「CADで図形にdraw()メソッドを
付けるべきではない」というのと同じことだと思います。
ということで、総論では賛成ですが、「メモリ中心では無理だから」という方の
理由付けはいらないんじゃないでしょうか。メモリに載ろうが載るまいが、
あるいはオブジェクト指向データベースがディスク上のデータを透過的に見せて
そのへんの問題をすべてクリアしてくれようが、データに処理が結びついていない以上、
やっぱりオブジェクト指向には合わないのだと思います。