Head First デザインパターン 第 2 版
ヘッドファーストデザインパターンダイニハン
頭とからだで覚えるデザインパターンの基本
- 著者:
- Eric Freeman / Elisabeth Robson / 佐藤 直生 / 木下 哲也(エリック フリーマン / エリザベス ロブソン / サトウ ナオキ / キノシタ テツヤ)
- 出版社:
- オライリー・ジャパン
- 出版日:
- 2022年06月08日頃
- ISBN:
- 9784873119762
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
技書の森解説
オブジェクト指向設計の定番カタログである GoF のデザインパターンを、イラストや写真、会話調の説明、クイズやパズルで体得させる入門書が『Head First デザインパターン 第 2 版』 (Eric Freeman、Elisabeth Robson 著、佐藤直生 監訳、木下哲也 訳、オライリー・ジャパン発行 / オーム社発売、2022 年 6 月刊) です。副題は「頭とからだで覚えるデザインパターンの基本」で、原書は Head First Design Patterns, 2nd Edition、2005 年に発刊された初版の改訂版にあたります。版元は対象読者として初学者、過去に挫折した経験のある方、知識を確固たるものにしたい方の 3 つを挙げ、デザインパターンを先人たちの知恵と経験の結晶と位置づけて、頻繁に起こる問題とその対応策を体得することを本書の狙いとしています。
全 14 章の構成、SimUDuck から付録の残りのパターンまで
構成は全 14 章で、第 14 章は「付録: 残りのパターン」です。1 章「デザインパターンへようこそ」はカモのシミュレーションアプリ SimUDuck を題材に、継承やインタフェースで振る舞いを追加しようとして事態が悪化する過程を追い、不変な部分から変化する部分を分離する、「HAS-A」は「IS-A」より優れている場合がある、という考え方と共有パターンボキャブラリの威力へ導きます。2 章以降は 1 章 1 パターンを基本にした各論で、気象観測アプリケーションを題材にした Observer パターン、コーヒーショップ (スターバズコーヒー) を題材にした Decorator パターン と開放/閉鎖原則、Factory、Singleton、Command、Adapter と Facade、Template Method、Iterator と Composite、State、Proxy と進みます。12 章「パターンのパターン: Compound パターン」では複数のパターンを組み合わせる例として MVC (モデル/ビュー/コントローラ) をパターンの集まりとして理解し、その中で Strategy パターン を探究する節が置かれています。13 章はデザインパターンの定義、パターンを体系化する視点、アンチパターンの弊害といった実世界での使い方を扱い、14 章の付録では Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype、Visitor の 9 パターンを紹介します。
イラストとクイズで GoF を体得する Head First 方式
版元は本書の紙面を、GoF の真髄を理解するため、教育心理学に基づきビジュアルを重視したレイアウト、文体、クイズやパズルを随所に盛り込んだものと説明しています。抽象的でわかりにくい概念も、豊富なイラストや身近なもののたとえで理解でき、例題を通してオブジェクト指向プログラミングの考え方を身につけられる、というのがシリーズ第 1 版から続く方針です。デザインパターン の学習で難しいのは、パターンの構造図を覚えることではなく、どんな問題が起きたときにその構造へ行き着くのかという動機を自分の設計判断に結びつけることです。1 章の SimUDuck のように、素朴に作ったものが要件の追加で悪い方向に進み、そこから原則を立てて構造を組み替えるという順序で読ませる運びは、パターンを解決策の名前ではなく、変化に耐えるための判断の型として記憶させる点に効き目があります。目次を見ると、2 章の気象観測アプリケーション、3 章のスターバズコーヒーと、各章が具体的な題材から始まる構成が続いており、1 章で示された不変な部分から変化する部分を分離する発想は、以降の章で題材を変えながら繰り返し現れる本書全体の背骨です。
Java の例題と、第 2 版でのアップデート
例題の言語は Java で、目次にも Java の Iterable インタフェース、Java の拡張 for ループ、Java API の Proxy を使った保護プロキシといった Java 固有の項目が並びます。前提知識としてはクラス、インタフェース、継承といったオブジェクト指向言語の基本文法が読める水準が必要ですが、パターンそのものはクラスとインタフェースを持つ言語であれば読み替えが利くため、Java 以外を主戦場にする人でも設計の考え方を吸収する目的では十分に読めます。第 2 版については、版元が Java のバージョンアップなどに合わせて全面的にアップデートしたと案内しており、初版 (ISBN 9784873112497) からの買い替えを検討する人はこの点が判断材料になります。どの言語機能がどう変わったかの明細は版元案内には示されていないため、細部は書店や版元の試し読みで確認するのが確実です。
著者と監訳者の背景、向かない人
書店掲載の書誌 (出版社提供 / 刊行時点) によれば、Eric Freeman は計算機科学者でイェール大学で博士号を取得し、ウォルト・ディズニー・カンパニーのディズニーオンラインの元最高技術責任者 (CTO)、Head First シリーズを共同で指揮し WickedlySmart で印刷物やビデオコンテンツの作成に専念していると紹介されています。Elisabeth Robson はソフトウェアエンジニア、著者、指導者で、イェール大学で計算機科学の理学修士を取得し、WickedlySmart の共同設立者、以前は O'Reilly Media の特別プロジェクトのディレクタとして対面式ワークショップやオンラインコースを企画したとあります。監訳の佐藤直生は日本オラクル株式会社で Java EE アプリケーションサーバやミドルウェアのソフトウェアエンジニア / テクノロジーエバンジェリストとしての経験を経て、刊行時点では Microsoft Corporation で Microsoft Azure のソフトウェアエンジニアとして活動、訳の木下哲也は 1991 年に松下電器産業株式会社に入社して全文検索技術などの研究開発に従事し、2000 年に退社して IT 関連の技術書の翻訳、監訳に従事していると紹介されています。向かないのは、GoF の原典のように簡潔な参照用カタログを手元に置きたい人です。会話調と図版で紙面を厚く使う本書は、必要なパターンだけを引く用途には遠回りになります。また設計原則を日常的に使い分けている中級者以上には、物語の運びが冗長に感じられる可能性があります。
元が取れるのは、パターン名は聞いたことがあるのに自分のコードでいつ使うのか判断できない人、原典や簡潔な解説書で一度挫折した人、そしてチームで設計を議論するための共有ボキャブラリを身につけたい人です。SimUDuck から MVC まで 14 章を通して読むと、要件変更で壊れるコードを見たときに、変化する部分を分離して振る舞いを差し替えるという手が自然に浮かぶようになり、コードレビューでパターン名を使って意図を伝えられるようになります。オブジェクト指向設計の基礎を腰を据えて固めたい人にとって、第 2 版として 2022 年に整えられた本書は、最初に選ぶ 1 冊として堅実です。
言及した記事 (10 件)
1年間続けた勉強会の成果と失敗
♡ 80勉強会, 初心者, ポエム, 新人プログラマ応援, 新人プログラマ応援_記事投稿キャンペーンJavaから職業プログラマをスタートするプログラミング初心者に読んでほしい技術書たち(2017年版)
♡ 54Javapython デザインパターン(Strategy)
♡ 32Python, デザインパターン, strategy, 設計原則【2020年】史上最もおすすめされているプログラミング本【25選】
♡ 25プログラミング, 初心者, まとめ, 書籍, 新人プログラマ応援(python) デザインパターンとアンチパターン(Strategy編)
♡ 19Python, デザインパターン, DesignPatterns, strategy, StrategyPattern【C#】抽象クラスとインターフェースを併用する理由を考えた
♡ 14C#, デザインパターン[Ruby][デザパタ]ObservableモジュールでObserverパターンを実現したい
♡ 10Ruby, オブジェクト指向, デザインパターンデザインパターンの絵本【全23種対応】(文:ChatGPT/画:Midjourney)
♡ 9デザインパターン, GoF, Midjourney, ChatGPT, GPT-4なぜデザインパターンを理解できないのか
♡ 9PHP, オブジェクト指向, 初心者, デザインパターンHead First デザインパターン 第2版 を読んだ感想
♡ 0デザインパターン, HeadFirst
この本に興味がある方におすすめ
関連する本
関連記事
Web デザイン本ガイド - HTML/CSS、Figma、Photoshop を学ぶ順番
Web デザインを独学する本の選び方を「コーディング、ツール、デザイン原則」の 3 本柱で整理。HTML/CSS の入門書、Figma と Photoshop の教本、レイアウトと配色の定番書を、2026 年 8 月時点の収載書から学ぶ順番つきで解説します。
設計の引き出しは経験だけでは増えない
実務経験だけでは設計の引き出しに限界があります。なぜ経験だけでは不十分なのか、本が設計力に対して果たす、他で代えにくい役割を論じます。
あの有名 OSS のコードは、この本の影響を受けている
広く使われているオープンソースソフトウェアの設計には、技術書と共通の語彙や原則が残っています。OSS のコードから辿れる影響と、似ているだけの例の見分け方を整理しました。
関連用語
デザインパターン
ソフトウェア設計で繰り返し現れる問題に対する再利用可能な解決策のカタログ
コンパイラー
人間が書いたソースコードを機械が実行できる形式に一括変換するプログラム
State パターン
オブジェクトの内部状態に応じて振る舞いを切り替え、状態遷移を明示的にモデル化するデザインパターン
Command パターン
操作をオブジェクトとしてカプセル化し、実行の遅延、キューイング、取り消しを可能にするデザインパターン
JIT コンパイル
プログラムの実行時にコードをネイティブコードにコンパイルし、パフォーマンスを向上させる技術
Builder パターン
複雑なオブジェクトの生成をメソッドチェーンで段階的に構築するデザインパターン