«前の日記(2008/08/12 Tue) 最新 次の日記(2008/08/14 Thu)»
tDiaryカスタムテンプレートはじめました。

2008/08/13 Wed [長年日記]

オブジェクト指向でなぜつくるのか

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

最近WEBでオススメされているのを見て読んでみました。クラス設計の例が的を得ていない等を言い切っている所は素晴らしいなと思いました。

本書には出ていないけど良くある例で、自動販売機クラスなんかも、商品オブジェクトを集合として持っていたり、継承してタバコの自動販売機にしたり、メソッドを追加して年齢認証機能をつけたりと継承の利点を表してはいるけど、実際に自動販売機をクラスにするなんてのはECシステムに見立てたとしてもかなり無茶で、抽象化の粒度の点で誤解を招いているといった感じの指摘。これは実際に良くあるOOP導入の説明で、概念的には正しい反面、例が具体的でありながらも現実のプログラミングに即していない為、理解を阻害する効果の方が大きいと思う。

その他、OOPで得られるメリットの話や、OOP言語の内部的な実装の話、UMLの話が展開されているのだけど、これを読んでオブジェクト指向のメリットを活かした考え方を習得できるかどうかはちょっと怪しいですね。良い本だとは思うし、読んで損は無いとは思うけど、よくわかっていない場合というよりも、分かってきた時に理解を整理するのを助ける本のような気がします。

個人的にはOOP用のシンタックスを持っている言語(個人的には勉強にはJavaがお勧め。最近ならRubyもいいかもしれない。)ではStringクラス等の組み込みクラスを使って何かに特化した文字列処理クラス(例えばURI抽出メソッドとか、URIにリンクを貼るメソッドを持ったクラス等)を作ってみればクラス化でデータと機能を併せ持つオブジェクトのメリットは分かると思うし、継承による差分プログラミングやパターンの活用方法はWEBアプリ向けのオレオレフレームワークを作るのが一番手っ取り早いと思う。

Tags: book | Bookmark:

Subscribe with Fastladder Subscribe with livedoor Reader エキサイトリーダーに登録 Bloglinesで閲読登録 add to google add to HATENA::RSS
2005|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|