オブジェクト指向の問題点を真剣に考えるためには、オブジェクト指向がなぜ便利なのか、もう一度分析しなおしてみるといいかもしれない。
2011-01-06 00:12:37「クラスは集合」というより「クラスのある側面と集合のある側面は似てる」じゃないかな、とかは思うことはよく有る。
2011-01-06 00:13:21そうですね。クラス=集合ではないってよく言われますね。 RT @naka_aki_spl: 「クラスは集合」というより「クラスのある側面と集合のある側面は似てる」じゃないかな、とかは思うことはよく有る。
2011-01-06 00:19:34結局の所、インターフェースを議論しないでオブジェクト指向を議論するのはムリだと思うんだけどな。インターフェースに比べたらオブジェクトなんてうんこ。
2011-01-06 00:19:22インターフェースって外部的な仕様の記述だと思うのですが、逆にその外部的な記述だけでプログラミングができないものでしょうか。RT @nakanishiyasuo: 結局の所、インターフェースを議論しないでオブジェクト指向を議論するのはムリだと思うんだけどな。..
2011-01-06 00:21:09それはJava的なインターフェースの理解です。OOでいうインターフェースはオブジェクトの境界を定義して抽象化の中心的な存在です。 RT @pokarim インターフェースって外部的な仕様の記述だと思うのですが、
2011-01-06 00:23:09S2Daoとかのアレは「これ以上こまかい振る舞いについては書く必要が無いはず」な処まで持ち込んだうえの話だな。任意の場面で振るえる技ではないよね。
2011-01-06 00:24:56ぼくもそんなふうに思います。だれか解説希望。 RT @mzp: クラスってオブジェクトの集合じゃないんすか?なんかこう、ちょっと定義を工夫すれば集合として扱えそうな気がするんだけど
2011-01-06 00:25:51「なにが集合か」と言われたら「コレクション系のやつ。それこそSetクラスとか有るよなあ」と答えたほうが色々しあわせじゃないか、とか思ったりする。違うのかなあ。あるいはクエリつまりxxx.find_all{…} (rubyでいえば)とかさ。
2011-01-06 00:27:08ところで(Javaとかの)Interfaceだと、「メソッド名が固定」なわけだけど、それしか選択肢が無いのってまずくないのかなあ? たしかww、.NETだと、handlesとかいって「継承するときに違う名前のメソッドで受ける」とか出来るんじゃなかった?あれいいね。
2011-01-06 00:28:55Togetterでは上っ面のデメリットだけを呟いてますが、あくまで継承はデータ構造と処理セットと具象化ガイドライン(しかも強い縛りのオマケ付)の3点セットを段ボールに詰めて手軽に抽象・再利用しようとするウルトラCだからこそ、不用意なデメリットを伴いやすいってだけなんですけどね。
2011-01-06 00:24:47そんなのは使い手次第だという意見は正しいと思うが、全体のボトムアップは多くの程度問題同士の比較の上に為せると思う。継承に関しては使い手の技量・経験に依る品質のぶれ幅が他と比べて大きい上、お手軽で、後からの設計方向転換にやたら弱いっていう面もあるので代替があるなら欲しいのです。
2011-01-06 00:30:23てか、よく分からんのだけどもしかしてそれって「オブジェクト指向」である以前に「集合指向」とでも呼ぶべきものだったりしないかな。オブジェクト指向をブートストラップさせるために先に集合指向のビルドアップが必要だ、とでも言うべきアーキテクチャ構成。
2011-01-06 00:40:47それはわかります。むしろ自分の中では固定的な観念がくずれてOOが分解しつつあって逆にわかりにくい。人によって捉え方違うし。 RT syamino: とりあえずStructural subtypingについて考えればクラスについての固定的な観念を崩せますよと宣伝だけしておきたい
2011-01-06 00:36:28Structural subtypingめもめも。ところで「固定的な観念」ってどこの畑の固定だろう。色々あるから宗教戦争になりそうなんだがww
2011-01-06 00:35:35あ、そういう意味では一般的なオブジェクト指向プログラマはインターフェースだけの世界とインターフェース+実装の世界を切り替えて使っているはずです。 @pokarim インターフェースって外部的な仕様の記述だと思うのですが
2011-01-06 00:38:13うーん、その人にやさしいって説明には違和感が。単純に人間の頭はとてつもない抽象化マシンで、オブジェクト指向は抽象化のサブセットを使うので、頭とコードの変換効率を最適化できるから人に優しいのだと思ってます。 @pokarim
2011-01-06 00:41:51@nakanishiyasuo だいたいわかります。インターフェースだけで実装の記述までするにはどうしたらいいか考えてみたら面白いかなということです。
2011-01-06 00:43:32