今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

アジャイルソフトウェア開発の奥義

発送先を会社にしていたところ、今日届いた。
つい先日 DP/ML で話題になった Template Method パターンと Strategy パターンについて、この本の14章で取り上げられていた。以下、Template Method パターンについての最後のあたりにある部分を引用。

Template Method パターンはオブジェクト指向プログラミングで使われる標準的な再利用の方法を教えてくれる。汎用的なアルゴリズムは基本クラスの中に収めておき、それを別のコンテキストの中に継承するといったやり方だ。しかし、このテクニックはコストがともなう。継承関連は非常に強い関連であり、派生クラスはその基本クラスから分離不可能だからだ。

そして、そのあとの Strategy パターンの最後では以下のようにかかれている。

Template Method パターンでは、1つの汎用的なアルゴリズムだけしか実装の詳細を操作できないのに対し、Strategy パターンではDIP*1に完全に準拠しているので、たくさんの汎用的なアルゴリズムが実装の詳細を再利用できるのだ。

それはそうと、大きさとかページ数とか全然気にしないで注文してたもんで、届いてみて690ページの厚さにびっくり。重い。とても日常的に持ち運べる代物ではない。(って、5800円+税なんだからそのくらいあっても当然なんだが)
この本って、オブジェクト指向技術者必携本のうちの一冊であることは間違いない。祝!和訳。このボリューム、とても原著で読む自信はない。
でもこの本、やば過ぎ。つい仕事忘れて読みふけってしまいそう。サンプルコードが Java なのもうれしい。
追記1:Java だけでなく C++ のコードもあった。
追記2:原著のサポートページ http://www.objectmentor.com/PPP がある。ここから掲載しているソースコードをダウンロードできるようだ。

*1:11章で説明されている依存関係逆転の原則(DIP:Dependency Inversion Principle)のこと