Mga tampok ng aklat
Sinasabi sa amin ng mga pattern ng head first na disenyo kung ano ang mga pattern, kung paano gamitin ang mga ito, at kung paano pag-isipan ang mga ito. Ang pattern ay isang template, isang unibersal na solusyon para sa isang partikular na hanay ng mga problema. Ang mga pattern ng disenyo ay, sa turn, ay karaniwang ginagamit na mga solusyon sa arkitektura na maaaring magamit upang magsulat ng user-friendly at flexible na mga application. Ang mga developer sa buong mundo ay nilulutas ang parehong mga problema sa parehong mga diskarte. Gaya ng sinasabi ng anotasyon, kung ayaw mong muling likhain ang gulong, gumamit ng mga yari na template ng disenyo (mga pattern), na kung saan ang aklat na ito ay nakatuon sa pagtatrabaho sa . Hiwalay, ito ay nagkakahalaga ng pagpuna sa pagtatanghal ng materyal: ang mga libro sa serye ng Head First ay sikat sa kanilang pagiging simple at binabasa sa isang upuan. Ang "Mga Pattern ng Disenyo" ay walang pagbubukod. Sumusunod din ito sa mga sumusunod na pangunahing prinsipyo:- Visibility
- Estilo ng pagtatanghal ng pakikipag-usap
- Ang isang malaking bilang ng mga guhit
- Aktibong pakikilahok ng mambabasa
- Apela sa mga emosyon
- Pagkuha ng atensyon ng mambabasa
Pangunahing tema at pangunahing ideya
“Наверняка вашу задачу кто-то уже решал” — так начинается первая глава книги, передавая весь смысл паттернов проектирования в программировании. Основная цель — правильно донести читателю их смысл, ведь в первую очередь программист должен знать, для чего нужны паттерны и в Howой момент их необходимо применить. По сути, сначала шаблоны нужно разложить по полочкам у себя в голове, и только после этого внедрять их в программы. Если новичок в программировании разбирается в паттернах “на троечку”, их использование может сильно усложнить code (а должно упрощать!). На вопрос “Почему следует применять паттерны проектирования?” книга дает однозначный ответ: “Знание таких концепций, How абстракция, наследование и полиморфизм, еще не делает из вас хорошего ОО-проектировщика. Паттерны содержат проверенный опыт ОО-проектирования.”“Краткое изложение”
Книга поделена на 14 глав плюс введение. В начале авторы книги стараются подготовить читателя, настроить его мозг на правильное восприятие информации о дизайне паттернов. Первая глава объясняет основной принцип паттернов, а также то, для Howих целей они служат. Легко и ненавязчиво рассматривается один из наиболее используемых паттернов — стратегия. Главы со второй по одиннадцатую посвящены подробному разбору отдельных паттернов:- Наблюдатель. Распространяет по an objectм события, которые заинтересованы в их наступлении.
- Декоратор. Другой взгляд на наследование в Java и наделение классов Java новыми возможностями без модификации codeа.
- Фабрика. Паттерн спасает code от нежелательных зависимостей.
- Одиночка. Также известный How Singleton, позволяет создавать единственный на всю программу an object класса.
- Команда. Паттерн позволяет удобно инкапсулировать вызов метода, расширяя возможности.
- Адаптер и Фасад. Решение проблемы несовместимости интерфейсов, а также упаковка an objectов для упрощения их интерфейса.
- Шаблонный метод. Инкапсулирование алгоритмических блоков, позволяющее субклассам в любой момент связываться с нужным алгоритмом обработки.
- Итератор и Компоновщик. Паттерн предоставляет удобный инструмент перебора коллекций вне зависимости от их типа. Дополнительно в главе дается порция информации о суперколлекциях.
- Состояние. Объекты наделяются способностью управлять своим поведением через изменение внутреннего состояния.
- Заместитель. Очень удобный паттерн для управления доступом к an objectу.
Достоинства и недостатки
Я, How и многие из тех, кто учится на JavaRush, холодно отношусь к скучноватым лекциям, зубрежке материала и прочему насorю над психикой ученика, жаждущего знаний. Силы, потраченные на заучивание непонятных текстов, на мой взгляд, лучше всего направить на поиск альтернативных источников обучения. Эта книга — одна из тех, на которую стоит потратить свое время и усorя. Отличный стиль изложения, грамотное управление вниманием читателя, повторяемость ключевых моментов формируют главное достоинство этой книги — легкость усвоения материала. Большое количество иллюстраций — дополнительный плюс. На мой взгляд, в книге каждая картинка на своем месте: все они позволяют усorть слова авторов и глубже понять суть материала. Как я уже писал выше, эта книга — не справочник: у ее авторов нет цели перечислить все паттерны. Ее главная задача — дать понимание и рассказать об основных шаблонах, чтобы остальные, более сложные, воспринимались легче. И с этим она справляется на все 100%. Среди недостатков можно выделить то, что Head first design patterns на русском читается не так гладко, How на английском. Конечно же, каждый разработчик должен владеть английским, но у начинающих программистов этот навык не всегда прокачан до такой степени, чтобы читать книги в оригинале. Тем не менее, это можно считать натянутым минусом, так How материал подается достаточно точно и смысл сохраняется.Дополнительные книги по паттернам проектирования
Я сторонник убеждения, что фундаментальные темы лучше изучать по нескольким источникам и искать в них подходящий для себя стиль подачи. Когда захотите погрузиться в паттерны и почитать дополнительную теорию, поверьте, вам будет, чем занять свои вечера.-
Приемы an objectно-ориентированного проектирования. Паттерны проектирования (Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.).
Это более серьезное издание, справочник паттернов, очень уважаемая книга от “Банды четырех”. Многие называют ее библией ОО-проектирования.
В сети мнения разработчиков делятся на 3 лагеря:
- одни утверждают, что книга устарела, и из-за стиля изложения читать ее невозможно
- другие рекомендуют использовать книгу исключительно How справочник по паттернам, не более
- третьи говорят, что книга — святой грааль паттернов проектирования, и ее должен прочесть каждый, кто хочет однажды стать Senior Java Developer
Важно: примеры в книге написаны на С++.
-
Java EE. Паттерны проектирования для профессионалов (Мурат Йенер, Алекс Фидом).
Эта книга посвящена проектированию Enterprise-приложений: в ней рассматривается множество примеров реальных прикладных задач.
-
Шаблоны проектирования в Java (Гранд М.).
В книге красочно демонстрируется, How применение шаблонов экономит время разработчиков, приведен обзор языка UML и описано 47 шаблонов проектирования.
Паттерны проектирования на JavaRush
В курсе JavaRush паттерны проектирования изучаются на уровне 7 квеста Java Collections. Лекции 1 и 2 посвящены самым распространенным шаблонам, а в лекции 4 можно порешать задачки по этой теме. Ниже — несколько интересных статей, чтобы “усorться”:-
Общая статья на тему паттернов с категориями, примерами, все How мы любим.
-
Две статьи по паттернам: часть 1 обзорная и более подробная часть 2.
-
Паттерны проектирования на примере шаблона Singleton.
-
Понятие паттернов проектирования связано с UML-диаграммами, эта статья поможет разобраться что это такое.
GO TO FULL VERSION