パターン言語

ISBN:4797314397
なんとなく買ってしまいました。というより、分散・並列処理に関するパターンが知りたかったので、サーベイもかねて買ってしまったと言うほうが正しいです。で、まだPart1汎用設計パターンしか読んでません。
Part1汎用設計パターンで記載されているパターンは全部で6つあります。

  • マネージャ
  • エッセンス
  • 型オブジェクト
  • 拡張オブジェクト
  • 役割オブジェクト
  • 空オブジェクト

ここで述べられているパターンは、どれも基本的なものです。だから、書かれていることも本当に当たり前のことです。ですけど、ある程度の大きさ(大きくもなく小さくもない程度)のプログラムになりはじめると、これらのパターンが徐々に頭を出してきます。たとえプログラマが意図していようが意図していまいが。それぐらい基本的なことで、当たり前のことです。
いま、私が開発しているグラフシミュレータを例に挙げます。このグラフシミュレータは、この本を読む前から開発しているので、先ほど挙げたパターンの存在について、私は知りませんでした。
グラフシミュレータでは、構造としてのグラフをエディットし、機能として処理の割り当てを行い、欲しい機能をグラフの振る舞いとして実現します。グラフの編集のとき、ノードの生成削除等は、親となるグラフが行います。これは親が子供の管理を行っているので、マネージャに該当します。また、処理に割り当ては、別に処理のオブジェクトを用意し、それをノードに割り当てます。これは型オブジェクトに該当します。
こんな感じで、いろいろなところに出没します。この本に書かれていることは、当たり前の内容だったけど(少なくともPart1については)、その当たり前のことについてきちんと形式化し、文書化しているので、結構面白く読めました。