Head First シリーズに少なくとも最低限の知識がある人の中には、そのような文献は初心者にとってかなり表面的な読み物であると考える人が多くいます。何と言うか、プログラミング分野の複雑なテーマを48時間で深く学ぶことは不可能でしょう。ただし、『デザイン パターン』が初心者にとってプログラミングの有益なガイドとなる本であることに異論はありません。この本は Stackoverflow で最も人気のある 10 冊のうちの 1 冊ですが、それには十分な理由があります。プレゼンテーションの容易さ、基本的なトピック、質の高い例により、この本は現在、そして今後長年にわたって人気があると私は考えています。
本の特徴
ヘッドファーストのデザインパターンは、パターンとは何か、パターンをどのように使用するか、パターンについてどのように考えるかを教えてくれます。パターンはテンプレートであり、特定の問題セットに対する普遍的な解決策です。 デザイン パターンは、一般的に使用されるアーキテクチャ ソリューションであり、ユーザー フレンドリーで柔軟なアプリケーションを作成するために使用できます。世界中の開発者が同じ問題を同じアプローチで解決しています。注釈にあるように、車輪の再発明をしたくない場合は、既製のデザイン テンプレート (パターン) を使用してください。この本では、これを扱うことに専念しています。これとは別に、資料のプレゼンテーションにも注目する価値があります。Head First シリーズの本はその簡潔さで有名で、一気に読めます。「デザインパターン」も例外ではありません。また、次の重要な原則にも準拠しています。- 可視性
- 会話形式のプレゼンテーション
- 豊富なイラスト
- 読者の積極的な参加
- 感情に訴える
- 読者の注意を引く
メインテーマとキーアイデア
「きっと誰かがあなたの問題をすでに解決しているはずです」 - この本の最初の章はこのように始まり、プログラミングにおけるデザインパターンの意味全体を伝えています。主な目標は、その意味を読者に正しく伝えることです。なぜなら、まずプログラマは、パターンが何のためにあるのか、どの時点でパターンを適用する必要があるのかを知らなければならないからです。基本的に、まず頭の中でテンプレートを小さな部分に分類し、その後でそれらをプログラムに実装する必要があります。プログラミングの初心者がパターンをよく理解している場合、パターンを使用するとコードが大幅に複雑になる可能性があります (ただし、コードは単純化されるはずです!)。「なぜデザインパターンを使用する必要があるのですか?」という質問に対して この本では明確な答えが示されています。「抽象化、継承、ポリモーフィズムなどの概念を知っていても、優れた OO デザイナーにはなれません。パターンには実証済みの OO 設計経験が含まれています。」"まとめ"
この本は 14 章と序章に分かれています。冒頭で、この本の著者は読者の準備を整え、パターンデザインに関する情報を正しく認識できるように脳を調整しようとします。最初の章では、パターンの基本原理とその目的について説明します。最もよく使用されるパターンの 1 つである戦略は、簡単かつ目立たずに検証できます。第 2 章から第 11 章までは、個々のパターンの詳細な分析に当てられています。- 観察者。イベントの発生に関心のあるオブジェクト全体にイベントを分散します。
- デコレーター。Java の継承と、コードを変更せずに Java クラスに新しい機能を与える方法についてもう一度見てみましょう。
- 工場。このパターンにより、コードが不要な依存関係から保護されます。
- シングル。シングルトンとも呼ばれ、プログラム全体に対して単一のクラス オブジェクトを作成できます。
- チーム。このパターンを使用すると、メソッド呼び出しを簡単にカプセル化し、その機能を拡張できます。
- アダプターとファサード。インターフェースの非互換性の問題を解決し、オブジェクトをパッケージ化してインターフェースを簡素化します。
- テンプレートメソッド。アルゴリズム ブロックのカプセル化により、サブクラスがいつでも必要な処理アルゴリズムに関連付けられるようになります。
- イテレーターとリンカー。このパターンは、コレクションの種類に関係なく、コレクションを反復処理するための便利なツールを提供します。さらに、この章ではスーパーコレクションに関する情報も提供します。
- 州。オブジェクトには、内部状態の変化を通じてその動作を制御する能力が与えられています。
- 副。オブジェクトへのアクセスを制御するための非常に便利なパターン。
長所と短所
JavaRush で学ぶ多くの学生と同様、私も退屈な講義、詰め込み教材、その他知識に飢えた学生の精神に対する暴力に対して冷淡な態度をとります。私の考えでは、理解できない文章を暗記することに費やされるエネルギーは、別の学習源を見つけることに最もよく使われます。この本はあなたの時間と労力を費やす価値のある本です。優れたプレゼンテーションスタイル、読者の注意を適切に管理し、重要なポイントを繰り返し説明することにより、この本の主な利点、つまり内容の吸収の容易さが形成されます。イラストが豊富なのも嬉しいポイントです。私の意見では、この本のすべての写真にはそれぞれの役割があり、それらはすべて著者の言葉を強調し、内容の本質をより深く理解することを可能にします。上で書いたように、この本は参考書ではありません。著者はすべてのパターンを列挙するつもりはありません。その主なタスクは、他のより複雑なパターンを理解しやすくするために、基本的なパターンについて理解を示し、説明することです。そして彼女はこれに100%対処します。欠点の中には、ロシア語の Head first デザイン パターンが英語ほど読みにくいことが挙げられます。もちろん、すべての開発者は英語を話す必要がありますが、初心者プログラマは必ずしも原文で本を読めるほど英語のスキルを習得するとは限りません。ただし、資料が非常に正確に提示され、意味が保持されているため、これは強制的なマイナスと考えることができます。デザインパターンに関するその他の書籍
私は、基本的なトピックをいくつかの情報源から研究し、その中から適切なプレゼンテーション スタイルを探すのが良いという考えを支持しています。パターンを深く掘り下げて追加の理論を読みたいときは、信じてください、あなたは夜を過ごす何かがあるでしょう。-
オブジェクト指向設計手法。デザインパターン(Gamma E.、Helm R.、Johnson R.、Vlissides J.)。
これはより本格的な出版物であり、パターンの参考書であり、「Gang of Four」から非常に尊敬されている本です。多くの人がこれを OO デザインのバイブルと呼んでいます。
インターネット上では、開発者の意見は 3 つの陣営に分かれています。
- この本は時代遅れで、表現方法が読むのを不可能にしていると主張する人もいる
- この本をパターンの参考書としてのみ使用することを推奨する人もいます。
- さらに、この本はデザインパターンの聖杯であり、いつか上級 Java 開発者になりたい人は誰でも読むべきだという人もいます。
重要:この本の例は C++ で書かれています。
-
Java EE。プロフェッショナル向けのデザインパターン(Murat Yeter、Alex Fidom)。
この本はエンタープライズ アプリケーションの設計に特化しており、実際のアプリケーションの問題の多くの例を取り上げています。
-
Java でのデザイン パターン(Grand M.)。
この本は、パターンの使用によって開発者の時間がどのように節約されるかをカラフルに示し、UML 言語の概要を提供し、47 の設計パターンについて説明します。
GO TO FULL VERSION