Java head first паттерны

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Code for Head First Design Patterns book (2020)

bethrobson/Head-First-Design-Patterns

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Changed player to tuner on line 33

Git stats

Files

Failed to load latest commit information.

README.md

Head First Design Patterns (2020 2nd Edition)

I have recently updated all the code for Head First Design Patterns for the 2nd edition of the book, released in December, 2020.

Читайте также:  Как удалить пунктуацию python

Download the code and compile and run from the command line, or load the code into project in Eclipse using Java 8 or higher.

Other links for the book are available on the book page at wickedlysmart.com.

About

Code for Head First Design Patterns book (2020)

Источник

Обзор книги “Паттерны проектирования” (Head First Design Patterns)

Java-университет

Обзор книги “Паттерны проектирования” (Head First Design Patterns) - 1

Среди людей, которые хотя бы минимально знакомы с серией Head First, есть немало тех, кто считает подобную литературу довольно поверхностным чтивом для новичков. Что сказать, глубоко изучить сложную тему из области программирования за 48 часов вряд ли получится. Однако сложно поспорить, что книга “Паттерны проектирования” — книга, которая будет полезным пособием по программированию для начинающих. Данная книга входит в десятку самых популярных на Stackoverflow, и небезосновательно. Легкость подачи, фундаментальная тема и качественные примеры делают книгу востребованной и сейчас и, на мой взгляд, еще на протяжении многих лет.

Особенности книги

  1. Наглядность
  2. Разговорный стиль изложения
  3. Большое количество иллюстраций
  4. Активное участие читателя
  5. Обращение к эмоциям
  6. Привлечение внимания читателя

Основная тема и ключевая мысль

“Наверняка вашу задачу кто-то уже решал” — так начинается первая глава книги, передавая весь смысл паттернов проектирования в программировании. Основная цель — правильно донести читателю их смысл, ведь в первую очередь программист должен знать, для чего нужны паттерны и в какой момент их необходимо применить. По сути, сначала шаблоны нужно разложить по полочкам у себя в голове, и только после этого внедрять их в программы. Если новичок в программировании разбирается в паттернах “на троечку”, их использование может сильно усложнить код (а должно упрощать!). На вопрос “Почему следует применять паттерны проектирования?” книга дает однозначный ответ: “Знание таких концепций, как абстракция, наследование и полиморфизм, еще не делает из вас хорошего ОО-проектировщика. Паттерны содержат проверенный опыт ОО-проектирования.”

“Краткое изложение”

  1. Наблюдатель. Распространяет по объектам события, которые заинтересованы в их наступлении.
  2. Декоратор. Другой взгляд на наследование в Java и наделение классов Java новыми возможностями без модификации кода.
  3. Фабрика. Паттерн спасает код от нежелательных зависимостей.
  4. Одиночка. Также известный как Singleton, позволяет создавать единственный на всю программу объект класса.
  5. Команда. Паттерн позволяет удобно инкапсулировать вызов метода, расширяя возможности.
  6. Адаптер и Фасад. Решение проблемы несовместимости интерфейсов, а также упаковка объектов для упрощения их интерфейса.
  7. Шаблонный метод. Инкапсулирование алгоритмических блоков, позволяющее субклассам в любой момент связываться с нужным алгоритмом обработки.
  8. Итератор и Компоновщик. Паттерн предоставляет удобный инструмент перебора коллекций вне зависимости от их типа. Дополнительно в главе дается порция информации о суперколлекциях.
  9. Состояние. Объекты наделяются способностью управлять своим поведением через изменение внутреннего состояния.
  10. Заместитель. Очень удобный паттерн для управления доступом к объекту.
Читайте также:  Php get http request data

Достоинства и недостатки

Я, как и многие из тех, кто учится на JavaRush, холодно отношусь к скучноватым лекциям, зубрежке материала и прочему насилию над психикой ученика, жаждущего знаний. Силы, потраченные на заучивание непонятных текстов, на мой взгляд, лучше всего направить на поиск альтернативных источников обучения. Эта книга — одна из тех, на которую стоит потратить свое время и усилия. Отличный стиль изложения, грамотное управление вниманием читателя, повторяемость ключевых моментов формируют главное достоинство этой книги — легкость усвоения материала. Большое количество иллюстраций — дополнительный плюс. На мой взгляд, в книге каждая картинка на своем месте: все они позволяют усилить слова авторов и глубже понять суть материала. Как я уже писал выше, эта книга — не справочник: у ее авторов нет цели перечислить все паттерны. Ее главная задача — дать понимание и рассказать об основных шаблонах, чтобы остальные, более сложные, воспринимались легче. И с этим она справляется на все 100%. Среди недостатков можно выделить то, что Head first design patterns на русском читается не так гладко, как на английском. Конечно же, каждый разработчик должен владеть английским, но у начинающих программистов этот навык не всегда прокачан до такой степени, чтобы читать книги в оригинале. Тем не менее, это можно считать натянутым минусом, так как материал подается достаточно точно и смысл сохраняется.

Дополнительные книги по паттернам проектирования

Обзор книги “Паттерны проектирования” (Head First Design Patterns) - 2

Я сторонник убеждения, что фундаментальные темы лучше изучать по нескольким источникам и искать в них подходящий для себя стиль подачи. Когда захотите погрузиться в паттерны и почитать дополнительную теорию, поверьте, вам будет, чем занять свои вечера.

  1. Приемы объектно-ориентированного проектирования. Паттерны проектирования (Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.). Это более серьезное издание, справочник паттернов, очень уважаемая книга от “Банды четырех”. Многие называют ее библией ОО-проектирования. В сети мнения разработчиков делятся на 3 лагеря:
    • одни утверждают, что книга устарела, и из-за стиля изложения читать ее невозможно
    • другие рекомендуют использовать книгу исключительно как справочник по паттернам, не более
    • третьи говорят, что книга — святой грааль паттернов проектирования, и ее должен прочесть каждый, кто хочет однажды стать Senior Java Developer

    Я приверженец второй группы: считаю, что книга действительно достойная, но читать ее для развития, а не с целью поиска какой-либо информации, очень сложно.

Важно: примеры в книге написаны на С++.

Обзор книги “Паттерны проектирования” (Head First Design Patterns) - 3

  • Java EE. Паттерны проектирования для профессионалов (Мурат Йенер, Алекс Фидом). Эта книга посвящена проектированию Enterprise-приложений: в ней рассматривается множество примеров реальных прикладных задач.
  • Шаблоны проектирования в Java (Гранд М.). В книге красочно демонстрируется, как применение шаблонов экономит время разработчиков, приведен обзор языка UML и описано 47 шаблонов проектирования.
  • Паттерны проектирования на JavaRush

    1. Общая статья на тему паттернов с категориями, примерами, все как мы любим.
    2. Две статьи по паттернам: часть 1 обзорная и более подробная часть 2.
    3. Паттерны проектирования на примере шаблона Singleton.
    4. Статьи про паттерн “Стратегия” и “Адаптер”.
    5. Понятие паттернов проектирования связано с UML-диаграммами, эта статья поможет разобраться что это такое.

    Источник

    Оцените статью