tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

GoF本読んだ

GoF本の翻訳本である「オブジェクト指向における再利用のためのデザインパターン」を読んだ。
本の内容が十分整理されているし、パターンを紹介し直すのも面倒なので、感想を中心に書く。

オブジェクト指向における再利用のためのデザインパターン | エリック ガンマ, ラルフ ジョンソン, リチャード ヘルム, ジョン ブリシディース, Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides, 本位田 真一, 吉田 和樹 |本 | 通販 | Amazon

オブジェクト指向のこころ」にいくつかのパターンがでてきものも含め再度23パターンの説明を読んでみた。 以前読もうとして挫折した覚えがあるけれど、今回も読みづらいなーという感じだった。

対象読者は、(20年近く前の)オブジェクト指向に沿った設計の議論をしたい、もしくはオブジェクト指向言語で仕事をしている人のようで、ある程度オブジェクト指向の用語や概念、設計意図を前提にして書かれている。 特に3章から23パターンの解説が始まる前に、2章でエディタソフトの設計についての紹介とそのなかでのデザインパターンの活かし方を説明をしていて、「これ2章でやるの?」という感じな上に、機能の説明もあっさりしていて厳しかった。

サンプルはC++なので、C++がわからないと理解が大変。 デザインパターンの理解に集中して、C++のバージョンが古くて仕様が変わっているか、それによって他の解決方法があるかは確認しなかった。(C++できないので、多重継承の議論も厳しい) 多重継承がある場合、マルチスレッドへの適用に関しては実戦経験も少なくて難しいので、必要になったら勉強しようと思う。

読む意味

20年前の議論、デザインパターンで古いということも聞くけれど、だから知らなくて良いということではないと思って読んだ。

わかりづらいときの参考

説明が難しいパターンに関しては結城さんの「Java言語で学ぶデザインパターン入門」を参考にして理解した。 Prototype, Memento, Commandパターンあたりはこっちを読んだらかなり分かりやすかったので、オススメ。

Amazonリンク

増補改訂版Java言語で学ぶデザインパターン入門

ここまででオブジェクト指向の目的と代表的なデザインパターンがわかったので、次はBertrand Meyerのオブジェクト指向入門か!?と思っているけど、一旦ここまで学んだことを実践してみてから読みたい。 例外をどう処理すれば良いのかよくわかっていないし、本棚にはあるので、いずれ読む。