torutkのブログ

ソフトウェア・エンジニアのブログ

Java読書会「Practical Design Patterns for Java Developers」(第3回)

Java読書会「Practical Design Patterns for Java Developers」(第3回)の予習

10月22日(日)は、Java読書会BOF 主催のJava読書会「Practical Design Patterns for Java Developers」を読む会(第3回)が開催されます。

今回は、第3章 生成に関するデザインパターン(Working with Creational Design Patterns)から読み始めます。 本書では生成に関するデザインパターンとして次が解説されています。

  • ファクトリメソッド・パターン
  • アブストラクトファクトリー・パターン
  • ビルダー・パターン
  • プロトタイプ・パターン
  • シングルトン・パターン
  • オブジェクトプール・パターン
  • 遅延初期化(lazy initialization)・パターン
  • 依存性注入(dependency injection・パターン

半数強が古典 GoF本に記載のものです。実装例としてJavaの新機能の利用としては、

  • switch式
  • record型
  • テキストブロック(パターンの実装ではなく、エラー時やprintlnでの文字列生成に使用)

シングルトンでは、マルチスレッド時の対策としてenumを使った実装例も紹介していました。

第3章が38ページなので、第4章 構造に関するデザインパターン(Applying Structural Design Patterns)も読み進める予定です。ここはボリュームが多いので途中までとなりますが、Java読書会の1回あたりの平均ページ数60ページから、第4章の最初の20ページほどに書かれてる次のパターンが今回の対象になると想定します。

  • アダプター・パターン
  • ブリッジ・パターン
  • コンポジット・パターン
  • デコレーター・パターン
  • ファサード・パターン
  • フィルター・パターン
  • フライウェイト・パターン

ざっと目を通した限り、前章と同じくswitch式、record型が登場していた他は、最新Java機能は登場していないようです。 ラムダ式を使った実装が見かけましたが、ラムダ式Java SE 8で導入されたので今更新しい機能とは言えないですね。

次回の読書会も、機械翻訳で読み進める予定なので、英語の敷居はほとんどないかと思います。 前回までは、JVMのディープなところ、Javaの新しい機能の解説で読むのが大変でしたが、今回は図とコード例も多く、比較的順調に進むと思います。