本文へスキップ
BecomeCoder

Javaデザインパターンコース · 第1章 デザインパターンとは ― 設計の「型」を学ぶ · レッスン1

なぜデザインパターンを学ぶのか

ローカル実施

導入

コードは「動けばいい」わけではありません。変更しやすく、読みやすく、壊れにくい コードには、共通する設計の工夫があります。デザインパターンは、その工夫に名前をつけたものです。

説明

デザインパターン は、1994年に出版された書籍『オブジェクト指向における再利用のためのデザインパターン』(通称 GoF本、著者4人組 = Gang of Four)で広く知られるようになりました。GoFは23個のパターンを、目的別に3つのカテゴリに分類しています。

graph TD
  A["デザインパターン(GoF 23種)"] --> B["生成に関するパターン<br/>Creational"]
  A --> C["構造に関するパターン<br/>Structural"]
  A --> D["振る舞いに関するパターン<br/>Behavioral"]
  B --> B1["Singleton / Factory<br/>Builder など"]
  C --> C1["Adapter / Decorator<br/>Composite / Facade など"]
  D --> D1["Strategy / Observer<br/>Template Method / Iterator など"]
  • 生成(Creational)オブジェクトを「どう作るか」に関するパターン。
  • 構造(Structural) … オブジェクトを「どう組み合わせるか」に関するパターン。
  • 振る舞い(Behavioral) … オブジェクト同士が「どう連携するか」に関するパターン。

パターンを学ぶ利点は3つあります。

  1. 共通言語になる … 「ここはStrategyで」と言えば、チームに設計意図が一瞬で伝わります。
  2. 車輪の再発明を避けられる … よくある問題の「検証済みの答え」を再利用できます。
  3. 設計を見る目が養われる … パターンを知ると、既存のライブラリやフレームワークの設計が読み解けるようになります。

ただし注意点も。パターンは「使うことが目的」ではありません。単純な問題に無理にパターンを当てはめると、かえって複雑になります。「この問題はこのパターンが解こうとしている状況に似ている」と気づいたときに使うものです。

次のレッスンでは、パターンを支える土台である SOLID原則 を振り返ります。