nobu blog

プログラミングやゲームの話など。

*



【感想】オブジェクト指向のこころ は文章とUMLを中心で敷居高めのデザパタ本

   

概要

今回紹介するのは、「オブジェクト指向のこころ」。
2005年に発売された古い本ながら、評判が良かったため購入して読んでみました。

本書は、オブジェクト指向パラダイムを有効にするためのデザインパターンの中から、重要度の高いものを厳選し、解説しています。その際、要求における流動的要素や、要求の変化という観点から、さまざまな事例について丁寧な考察を行うことによって、デザインパターンそのものを導き出すというユニークなアプローチを採っています。

スポンサーリンク

書籍概要

どんな本?

本書は、オブジェクト指向パラダイムを有効にするためのデザインパターンの中から、重要度の高いものを厳選し、解説しています。その際、要求における流動的要素や、要求の変化という観点から、さまざまな事例について丁寧な考察を行うことによって、デザインパターンそのものを導き出すというユニークなアプローチを採っています。
オブジェクト指向パラダイムのメリットを120% 引き出したいと考えている方に、まず本書をお薦めすることができます。
デザインパターンを考察することでこそ、「オブジェクト指向の本当の姿」=「オブジェクト指向のこころ」が理解できるようになるわけです。また、デザインパターンを勉強したことがない方、勉強はしたが日々の仕事に活用できないと悩んでおられる方にもお薦めです。
本書で解説されている観点に立つことで、「時間軸を見渡した設計」とも言える考え方を身につけることができ、設計・開発するシステムはひと味もふた味も違ったものとなることでしょう。

  • 村上 雅章 訳
  • 2005年09月 発行
  • 404ページ
  • 定価4,180円(税込)

初版は2005年ですが、2014年に内容の変更等は無いまま別の出版社から再出版されています。
比較的移り変わりの激しい技術書の中ではかなり息が長く、普遍的な内容が書かれていると推測されますね。

スポンサーリンク

内容のまとめ

本書は全8部で構成されていて、各部の概要は下記の通りになります。

第1部

オブジェクト指向とは?といった話から始まり、カプセル化、ポリモーフィズムといったオブジェクト指向における基本概念や理論に関して記載されています。
また、UMLによるクラス図の書き方に関して記載されています。

第2部

具体的なサンプルとしてCAD /CAMソフトを例にして、オブジェクト指向になっていないV1のバージョンの機能群とオブジェクト指向で再設計されたV2という機能群といった、2つのバージョンを混在させる必要性があるソフトウェアにおける問題点などをUMLを中心に説明さがされています。

第3部

5つのデザインパターン(Facade,Adapter,Strategy,Bridge,Abstract Factory)に関する説明が中心となっています。

第4部

第2部で取り上げたCAD/CAMMソフトウェアの問題点を解決するために、第3部で学んだデザインパターンをどのように適応したら良いかの考察が示されています。

第5部

これまで学んだ手法や教訓を活かしてどのようにアプリケーションを設計していけば良いのかの考察が多く書かれています。
正直、このあたりは

第6部

機能的な流動性に対応するための3つのデザインパターン(Decorator,Observe,Template Method)に関しての説明が行われています。

第7部

オブジェクトの生成にフォーカスして3つのデザインパターン(Singleton,Object Pool,Factory Method)に関しての説明が行われています。

第8部

これまでの総括及びまとめが記載されています。

スポンサーリンク

感想

良い点

具体的なサンプルアプリケーションを使った事例

デザインパターンをやみくもに網羅するのではなく、例題的なアプリケーションをテーマとして何が問題で、それをどうデザインパターンを適応して解決するのかが説明されています。
よくあるデザインパターンの例ですと、既に適応済みのコードやクラスを使って説明といった事が多いですが、本書は既存の問題のあるアプリに対しての適応方法が説明されているので、より具体的、実践的になるかと思います。

残念な点

翻訳された文章多めで文が固い

多くの翻訳された技術書がそうなりがちですが、本書も文章が一部不自然というか、固くて読みづらかったです。
その上で、本書は図やコードに比べてかなり文章量が多い本なので余計に辛く感じる点でした。
図があればわかりやすい説明とかも、文章でがっつり書かれていたりするので読んでいてしんどくなってきます。

コードサンプルが少ない

本書では、Javaのコードを使った説明が一部ありますが、多くの説明はUMLと文章の説明だけで終わってしまうものが多々あります。
個人的にはやはりサンプルコードを見て理解したいので、あまりしっくりこない箇所が多々ありました。

後半は抽象的な文章が多い

後半は文章による考察が多くを占めていて、前述の通り翻訳の問題と合わせて読んでいて、理解が進まなくて辛いです。
何度も読み返せばわかるのかもしれませんが、ちょっとそのモチベーションはわきませんでした。
せめて図がもっとあれば良いのですが・・・。

スポンサーリンク

まとめ

オブジェクト指向のこころに関する感想を記載しました。
基本的にある程度のコードやオブジェクト指向での設計や実装を行った経験のある中〜上級者向けの本になるかと思います。

デザインパターンを実際のアプリケーションのシナリオに沿って適応させる点ではかなり参考になります。
一方で全般的にサンプルのコードが少なく、クラス図と大量の文章による抽象的な説明が多く、理解するのが難解な箇所が多々出てきます。
完全に理解するには、何度も読み込んでいく必要があるのでは無いかと思います。
もしくは無理に理解しようとするのではなく、定期的に自分の知識がアップデートされたタイミングで読んでみると、新しい発見や理解が進んでいくのかもしれませんね。

本書は、オブジェクト指向パラダイムを有効にするためのデザインパターンの中から、重要度の高いものを厳選し、解説しています。その際、要求における流動的要素や、要求の変化という観点から、さまざまな事例について丁寧な考察を行うことによって、デザインパターンそのものを導き出すというユニークなアプローチを採っています。

 - 技術書, 読書感想