JavaRush /Java Blog /Random-TL /Repasuhin ang aklat na "Unang Pangunahing Mga Pattern ng ...
Alex
Antas

Repasuhin ang aklat na "Unang Pangunahing Mga Pattern ng Disenyo"

Nai-publish sa grupo
Sa mga taong hindi bababa sa kaunting pamilyar sa seryeng Head First, marami ang nagtuturing sa gayong panitikan na medyo mababaw na pagbabasa para sa mga nagsisimula. Ano ang masasabi ko, hindi malamang na magagawa mong malalim na pag-aralan ang isang kumplikadong paksa sa larangan ng programming sa loob ng 48 oras. Gayunpaman, mahirap magtaltalan na ang Design Pattern ay isang aklat na magiging kapaki-pakinabang na gabay sa programming para sa mga nagsisimula. Ang aklat na ito ay isa sa sampung pinakasikat sa Stackoverflow, at sa magandang dahilan. Ang kadalian ng pagtatanghal, ang pangunahing paksa at mataas na kalidad na mga halimbawa ay ginagawang sikat ang libro ngayon at, sa aking opinyon, sa maraming darating na taon. Обзор книги “Паттерны проектирования” (Head First Design Patterns) - 1

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:
  1. Visibility
  2. Estilo ng pagtatanghal ng pakikipag-usap
  3. Ang isang malaking bilang ng mga guhit
  4. Aktibong pakikilahok ng mambabasa
  5. Apela sa mga emosyon
  6. Pagkuha ng atensyon ng mambabasa
Ang mga may-akda ng libro ay may kakayahang gumamit ng teorya ng metacognition upang ipakita ang materyal: para sa akin, ang unang 100 mga pahina ay lumipad nang hindi napansin. Ang kagandahan ng diskarteng ito ay talagang naaalala ng utak kung ano ang binabasa nito. Ang kumbinasyon ng ilang mga estilo ng pagsasalaysay, mga kagiliw-giliw na tanong, kalabisan at pagkamalikhain - lahat ng ito ay nakakatulong sa mambabasa na hindi mawalan ng interes sa pangunahing paksa. Bago bumili ng libro, nag-alinlangan ako matapos basahin ang mga halo-halong review. Gayunpaman, pagkatapos ng mabilis na pag-skim sa maraming iba pang mga mapagkukunan sa paksang ito, nagpasya akong: sumisid sa mga pattern, ang aklat na ito ang kailangan mo.

Pangunahing tema at pangunahing ideya

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

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

Книга поделена на 14 глав плюс введение. В начале авторы книги стараются подготовить читателя, настроить его мозг на правильное восприятие информации о дизайне паттернов. Первая глава объясняет основной принцип паттернов, а также то, для Howих целей они служат. Легко и ненавязчиво рассматривается один из наиболее используемых паттернов — стратегия. Главы со второй по одиннадцатую посвящены подробному разбору отдельных паттернов:
  1. Наблюдатель. Распространяет по an objectм события, которые заинтересованы в их наступлении.
  2. Декоратор. Другой взгляд на наследование в Java и наделение классов Java новыми возможностями без модификации codeа.
  3. Фабрика. Паттерн спасает code от нежелательных зависимостей.
  4. Одиночка. Также известный How Singleton, позволяет создавать единственный на всю программу an object класса.
  5. Команда. Паттерн позволяет удобно инкапсулировать вызов метода, расширяя возможности.
  6. Адаптер и Фасад. Решение проблемы несовместимости интерфейсов, а также упаковка an objectов для упрощения их интерфейса.
  7. Шаблонный метод. Инкапсулирование алгоритмических блоков, позволяющее субклассам в любой момент связываться с нужным алгоритмом обработки.
  8. Итератор и Компоновщик. Паттерн предоставляет удобный инструмент перебора коллекций вне зависимости от их типа. Дополнительно в главе дается порция информации о суперколлекциях.
  9. Состояние. Объекты наделяются способностью управлять своим поведением через изменение внутреннего состояния.
  10. Заместитель. Очень удобный паттерн для управления доступом к an objectу.
В главе 12 рассматриваются составные паттерны, а точнее, комбинации некоторых рассмотренных паттернов, с помощью которых можно строить мощные архитектуры программ. Глава 13 посвящена применению паттернов в реальных задачах, представлена классификация паттернов, их разновидности и руководство по использованию. В качестве applications в книге служит глава 14, в которой рассматривается более широкий спектр паттернов. Каждый из них по-своему полезен, поэтому знать их более чем желательно. Разумеется, они не такие популярные, How паттерны из глав 2-11, однако это не делает их менее полезными. Книга не претендует на академически точное изложение теории паттернов. Но если книги серии Head First будут такими дотошными, у начинающих разработчиков не будет шансов разобраться, что к чему и прояснить для себя основы основ. Это простой и удобный способ узнать, что такое шаблоны проектирования для тех, кто с ними не знаком. По утверждению авторов, “Паттерны проектирования” — книга, которая подойдет тем, кто уже знаком с Java (or C#), желает изучить принципы an objectно-ориентированного проектирования и предпочитает оживленную беседу скучным лекциям. Данная книга — не справочник! Если вы — профессиональный разработчик со стажем и работаете хотя бы частью этих паттернов, вряд ли книга будет вам интересна. Важная составляющая книги — упражнения: их не стоит пропускать. При внимательном прочтении книги и, в крайнем случае, минимальном поиске в интернете, их решение не добавит вам головной боли. А вот польза точно будет. По крайней мере, глубже разберетесь в теории, которая излагается в книге.

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

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

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

Я сторонник убеждения, что фундаментальные темы лучше изучать по нескольким источникам и искать в них подходящий для себя стиль подачи. Когда захотите погрузиться в паттерны и почитать дополнительную теорию, поверьте, вам будет, чем занять свои вечера.
  1. Приемы an objectно-ориентированного проектирования. Паттерны проектирования (Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж.).

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

    Это более серьезное издание, справочник паттернов, очень уважаемая книга от “Банды четырех”. Многие называют ее библией ОО-проектирования.

    В сети мнения разработчиков делятся на 3 лагеря:

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

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

  2. Java EE. Паттерны проектирования для профессионалов (Мурат Йенер, Алекс Фидом).

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

    Эта книга посвящена проектированию Enterprise-приложений: в ней рассматривается множество примеров реальных прикладных задач.

  3. Шаблоны проектирования в Java (Гранд М.).

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

    В книге красочно демонстрируется, How применение шаблонов экономит время разработчиков, приведен обзор языка UML и описано 47 шаблонов проектирования.

Паттерны проектирования на JavaRush

В курсе JavaRush паттерны проектирования изучаются на уровне 7 квеста Java Collections. Лекции 1 и 2 посвящены самым распространенным шаблонам, а в лекции 4 можно порешать задачки по этой теме. Ниже — несколько интересных статей, чтобы “усorться”:
  1. Общая статья на тему паттернов с категориями, примерами, все How мы любим.

  2. Две статьи по паттернам: часть 1 обзорная и более подробная часть 2.

  3. Паттерны проектирования на примере шаблона Singleton.

  4. Статьи про паттерн “Стратегия” и “Адаптер”.

  5. Понятие паттернов проектирования связано с UML-диаграммами, эта статья поможет разобраться что это такое.

Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION