@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- @IT情報マネジメント 会議室 Indexリンク
- IT戦略
- 仕事の改善
- アーキテクチャ
- プロジェクト管理
- ITインフラ
- Webマーケティング
- BPMプロフェッショナル
- 業務アプリ
- - PR -
オブジェクト指向の理解度を測るためには?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-09 13:32
う〜ん、それは擬似的なんでしょうか。オブジェクト指向だと私は思いますが。 いま念頭に置いているのは、Berkeley DB バージョン4 で、DB->open とか DB->get とかやるようなことです。 | ||||||||
|
投稿日時: 2004-06-09 15:55
例えば、C++でクラスに定義されたメソッドは、インスタンスレベルでは変更できません。しかし、Cの構造体に追加された関数へのポインタは、ポインタを差し替えることで変更できます。これは変態や多態とは違った概念ですよね。また、必ずどこかで代入してやる必要があります。この「代入する」ということによって、「振る舞いを擬似的に定義する」としました。つまり、そこにあるのは「振る舞い」ではなく、振る舞いが定義された“場所(アドレス)という情報”だと思います。 ##### この辺、近いことがBorland C++ Builderのイベントハンドラ定義で議論されていたのを見かけたことがあるんだけどなぁ | ||||||||
|
投稿日時: 2004-06-09 16:10
msoです。
ヨコヤリみたいですが、本来のネタにしてみます。 アンケート問題作ってみました。 #一部名称を変えていますけどね・・・ 私の周りの人からはハードルが高すぎると 非難を浴びております ハードル高いでしょうか? #つっこみお願いします。 以下の設問について答えてください。(制限時間は1日) 設問1: 太郎君が自動販売機でジュースを買う一連の動作を クラス設計してください。 表現方法はUMLが望ましいですが、UMLについて詳しく わからないのであればプログラムでも可とします。 ただし、必ず”自動販売機クラス”を作成してください。 設問2: オブジェクト指向は再利用性が高いといわれていますが、 構造化プログラミングでも再利用が可能な抽象化部品(関数)が あります。 なぜオブジェクト指向が再利用性が高いのかを説明してください。 | ||||||||
|
投稿日時: 2004-06-09 16:24
こんにちは〜。
生息板違いですが、ちょびっとだけ。(^^; う〜ん、Berkeley DB はソースを見ていないのですが、構造体に関数へのポインタを埋め込んだとしても 「関数自体は外出し」 や 「構造体の中身はどこからでも書き換えられる」 という点において、やはりオブジェクト指向とは違うかなぁと思うのですが、どうなんでしょう。 (オブジェクト指向をおいしく利用しているとは思いますが) 自分の理解度を推し量るには、著名な本を読むのもよいかなぁと(必ずしも本が正しいとは限りませんけど)。 「翔ソフトウェア (Sho's) - オブジェクト指向 - 書籍-雑誌」 さんで紹介されている書籍とか。 最近出た 「オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―」 は、パラッとしか見ていませんが、おいしそうなカンジでした。 # 個人的には、がるがる さんの 「オブジェクト講座」 がよいと思っています(笑)。 # うわっ、遅レスでした!流れを切っちゃってすいません! [ メッセージ編集済み 編集者: はゆる 編集日時 2004-06-09 16:28 ] | ||||||||
|
投稿日時: 2004-06-09 18:32
これは、プロタイプベースのオブジェクト指向プログラムと考えることもできるのでは? つまり、JavaScriptがオブジェクト指向言語なら、これもそうかもということです。 ちなみに、Rubyなんかも、動的にメソッドを置き換えることが出たりします。 | ||||||||
|
投稿日時: 2004-06-09 19:20
プロトタイプチェーンや委譲が実現できればプロトタイプベースOOと言えるのかもしれませんが・・・。 例えばアセンブラでOOPやって、それをOOPと言えるのかというと私はちょっと違う気がしますが、それと同種の違和感があります。 # OOを言語仕様で実現するのか、ライブラリとして実現するのか、みたいな価値観の相違? スレッドの本題に戻ると、 C++・Javaな人と、Smalltalk・Objective-Cな人と、はたまたSelfな人、CLOSだのSchemeだのな人で、「オブジェクト指向とは?」に関する考え方がまるで違うので、まず自分がどの流派のオブジェクト指向でいくのか決めるべきなのかもしれません。 #私はSmalltalk寄りなので、オブジェクト指向とはメッセージパッシングだ!と思ってます | ||||||||
|
投稿日時: 2004-06-09 19:40
具体的にどこが難しいのか ちょっと想像できませんでした^^; (深く考えてないのでエラそうなことは言えませんが。。) ちょっとばかり昔の話になりますが
という考えでいくと、 「データ中心=データはデータとしてまとめて、処理は処理として別のところでまとめる。」 となっていると(手元で調べた某書籍を調べた限りでは)思います。 そうなってしまうとオブジェクトがもつロール(責務)という概念はどういった形で存在することになるのでしょうか? (データと処理を明確に分離して責務を作り出せるのか、といった疑問です) _________________ "Whatever does not destroy me, only makes me stronger." - Nietzche [ メッセージ編集済み 編集者: こくぼ 編集日時 2004-06-09 20:21 ] | ||||||||
|
投稿日時: 2004-06-09 20:32
msoです。
んー、表現をどうやったらいいんだろうなぁ。 ”データ中心”というだけであって、データとロジックを分けるわけじゃないんです。 私はデータ=インスタンスと勝手に思いこんでいる部分が少なからずあります。 自分の時は自分が分かるまで本を読んで、それでも分からないなら他の本という 感じに数冊本を読んでいるので”なんとなく”分かっているつもりになっています。 なのでクラス設計しろとか、プログラムやれ、UML書けと言われたらそれっぽく できるしココはこうやっている。と言えるのですが、しつこく”なぜ?”を連発 されると相手を説得する自信がありません。 #今回痛感しています。 どうやって説明すればいいのか分かりませんが、 債務をいい加減にしてはいないですよ。 |