あなたは以下のような謳い文句をどこかで聞いたことがありますか?
・オブジェクトとはデータと振る舞いを持った「もの」である
・カプセル化とはデータを隠蔽することである
・オブジェクト指向言語では継承を使用することによって再利用が促進される(差分プログラミング)
・オブジェクトとは現実世界における実体であるため、名詞と動詞を抽出することで適切なクラス設計を行うことができる
この本は本来あるべきオブジェクト指向設計においてはこれらが適切ではないということをデザインパターンを使って解説しています。
この本を以下の方に薦めます。
・デザインパターン本(GoF本を含む)を読んだがいまいち理解できなかった方(オブジェクト指向初級者)
この本はデザインパターンの解説だけではなく、その元となっているオブジェクト指向原則についても説明しています。そのため他のデザインパターン本よりも有益でありかつ理解しやすいものとなっています。
・オブジェクト指向はある程度理解していると考えている方(オブジェクト指向中級者)
オブジェクト指向原則やデザインパターンに対する知識の整理が可能となります。「それについては知っていた」という箇所が出てきた場合には自分を褒めましょう。(この逆は、「もしかしたら自分はオブジェクト指向初級者だったのかもしれない。」です。)
また、この本が他のデザインパターン本よりも理解しやすいのは以下の理由もあると思います。
・著者がデザインパターン講義を行っている講師である
理解するのが困難な箇所について何度も解説を行った経験があり、そのためその解説が洗練されている。
・翻訳がすばらしい
村上雅章さんの翻訳は本当にすばらしいです。
オブジェクト指向及びデザインパターンについて書かれた本を今までに多く読んできましたが、この本が一番分かりやすく有益であると思いました。