HOME>情報備忘録>オブジェクト指向の間違った理解を正してくれた3つの言葉

オブジェクト指向の間違った理解を正してくれた3つの言葉

PHPはオブジェクト指向での開発が可能な言語ですが、日本語で読めるオブジェクト指向に関する書籍がありません(たぶん)。 いや、以前はあったんですが絶版になっています・・・

そのため、僕はオブジェクト指向の一面だけを取り上げた断片的な情報から間違った理解をしてました。 そんな間違った理解を正してくれた3つの言葉を紹介します。

どう変わるかは判らなくても、どこが変わるかは予想できる。

こちらの本に書かれていた言葉。Javaの本ですが、ほとんどコードは出てこないのでPHPerの僕でも読めました。

オブジェクト指向のこころ

作者:アラン・シャロウェイ/ジェームズ・R.トロット | 価格:4180

学び始めというのはなんでもかんでもクラスにして、パターンにしようとしてしまいがちです。 なんかやたら使いたくなるんです。

でもそうして、出来上がったものは、後から見て理解するのに時間がかかるものになることがほとんどです。 なので変更無さそうなところは、カッコよく書こうとせずシンプルに書いた方がよいと思います。 特にPHPは簡単に書けるところがいいところであるわけだから、オブジェクト指向に囚われすぎないことも大事かなと。

どこが変わる部分なのかを見つけだすことが、オブジェクト指向の第一歩です。

カプセル化とは「あらゆるものを隠蔽すること」

これまた、上記と同じ本から。

オブジェクト指向のこころ

作者:アラン・シャロウェイ/ジェームズ・R.トロット | 価格:4180

プロパティ、メソッドをprivateにしとけばカプセル化だろ?オブジェクト指向だろ?と思ってた時期が僕にもありました。

実際、そのことだけに触れてるオブジェクト指向に関する記事が多々あるのでそう思ってしまうのですが、 クラスのプロパティ、メソッドを隠蔽するという行為は、カプセル化の一面にしか過ぎません。

本当に隠したいものは、「クラス」であり「実装」です。

クライアントはどのクラスを扱っているのか、よくわからないけどなんか使えてるっていう状況が、 なんかやばそうに思えますが実は一番いい状態です。

どこが変わる部分なのかを見つけだす。そしてデザインパターンなどを利用して隠す。 オブジェクト指向の第ニ歩であり、ほぼ全て。

インターフェイスに対してプログラムする

最後はPHPerのマストアイテム

の作者が先輩から言われたという言葉。 今は絶版になったため原稿がウェブ上で公開されています。

インターフェイスの重要性って最初はいまいちわからないんですが、実は超重要です。いやマジで。

先ほど「どのクラスを扱っているのか、よくわからないけどなんか使えてる」のが一番いい状況と書きましたが その「使える」ということを保証してくれるのです。

そんな重要なインターフェイスですが、逆に変更となると、影響も大きいため、 先々を見通せるようなすごい人がそこら辺を決めてるんでしょうね。たぶん。 僕なら一番優秀な人に依頼すると思う。

オブジェクト指向は隠蔽のための技術。

オブジェクト指向とは?の問いに対する僕の現時点での答えです。

オブジェクト指向のメリットとして語られる、再利用しやすい、変更しやすいというのは デザインパターンとかを利用して隠蔽されているからこそなんだと思います。

今後、答えが変わったらまた書きたいと思います。

それにしても、一番おもしろいプログラム設計に関するPHP本が無いのが残念すぎますね。 この本欲しい・・・

オブジェクト指向入門第2版

作者:バートランド・メイヤー/酒匂寛 | 価格:7920

投稿日 2011年6月26日 04:29
カテゴリ プログラム
タグ PHP | オブジェクト指向 | デザインパターン
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1226

コメント

コメントする
Name
Email Address
URL