Отзывы о книге «Я получил книгу вчера, начал читать ее по дороге домой... и не мог остановиться. Я взял ее в трена- жерный зал, и окружающие, вероятно, удивлялись, когда я читал во время тренировки. Круто в выс- шей степени. Книга отлично читается, но в ней рассматривается вполне серьезный материал, и все по делу. Весьма впечатляюще». — Эрик Гамма, заслуженный специалист IBM, соавтор книги «Приемы объектно-ориентированного проектирования», один из участников «Банды Четырех» наряду с Ричардом Хелмом, Ральфом Джонсоном и Джоном Влиссидесом «Книга умудряется смешать юмор, техническую глубину и полезнейшие практические советы; получа- ется занимательное чтиво, располагающее к размышлениям. И новички в области паттернов, и опыт- ные разработчики, применявшие их годами, наверняка вынесут что-то полезное из посещения Объ- ектвиля». — Ричард Хелм, соавтор книги «Приемы объектно-ориентированного проектирования», вместе с остальными участниками «Банды Четырех» — Эриком Гаммой, Ральфом Джонсоном и Джоном Влиссидесом «У меня такое чувство, словно я прочитал сразу полтонны книг». — Уорд Каннингем, изобретатель Wiki и основатель Hillside Group «Книга близка к идеалу благодаря сочетанию удобочитаемости и практического опыта. Авторы изла- гают материал на достойном уровне и делают это изящно. Это одна из немногих книг по программи- рованию, которую я считаю незаменимой (а я к этой категории причисляю книг десять, не более)». — Дэвид Гелентер, профессор информационных технологий, Йельский университет, автор книг «Mirror Worlds» и «Machine Beauty» «Погружение в мир паттернов — в страну, в которой сложное становится простым, но и простое может оказаться сложным. Не представляю себе лучшего вводного руководства, чем книга Фрименов». — Мико Мацумура, отраслевой аналитик, Middleware Company, бывший ведущий специалист по Java, Sun Microsystems «Я смеялся, я плакал, книга тронула меня». — Дэниел Стейнберг, старший редактор java.net «Сначала мне захотелось упасть на пол от смеха. Но потом я собрался и понял, что эта книга не только содержит технически точную информацию, но и является самым доступным введением в паттерны проектирования, которое я когда-либо встречал». — Доктор Тимоти Бадд, адъюнкт-профессор в области информационных технологий Орегонского государственного университета, автор более дюжины книг, в том числе «C++ for Java Programmers» Отзывы о книге «Джерри Райс обращается с паттернами лучше любого принимающего в NFL, но Фримены превзошли его. Серьезно... Это одна из самых забавных и умных книг в области проектирования ПО, которые я когда-либо читал». — Аарон Лаберг, старший вице-президент по технологиям и разработке продуктов, ESPN «Хорошая архитектура программы прежде всего определяется хорошей информационной архитекту- рой. Проектировщик учит компьютер, как выполнить ту или иную операцию, и не приходится удив- ляться тому, что хороший учитель компьютеров оказывается хорошим учителем программистов. Бла- годаря ее доступности, юмору и уму авторов даже не-программист хорошо воспримет эту книгу». — Кори Доктороу, один из редакторов Boing Boing, автор книг «Down and Out in the Magic Kingdom» и «Someone Comes to Town, Someone Leaves Town» «Эрик и Элизабет Фримен в своей книге бесстрашно вызвались заглянуть за занавес программного кода. Они излагают основные концепции проектирования на таком честном уровне, на который не решаются многие писатели, думающие только об укреплении своего замечательного эго, — на уровне, на котором открываются столь поразительные истины. Софистам и цирковым зазывалам здесь делать нечего. Образованные люди следующего поколения — не забудьте взять в руки карандаш». — Кен Голдстейн, исполнительный вице-президент и директор-распорядитель, Disney Online «Правильно выбранный тон для внутреннего раскрепощенного эксперта-программиста, скрывающе- гося в каждом из нас. Отличный справочник по практическим стратегиям разработки — мой мозг ра- ботает, не отвлекаясь на надоедливый, устаревший академический жаргон». — Трэвис Каланик, генеральный директор и соучредитель Uber, член MIT TR100 «Благодаря сочетанию юмора, отличных примеров и глубокого знания паттернов проектирования обучение по этой книге становится таким увлекательным занятием. Например, меня как активного участника индустрии развлечений сразу заинтриговал Голливудский принцип и паттерн Фасад для до- машнего кинотеатра. Понимание паттернов проектирования не только помогает нам создавать каче- ственные программы, пригодные для повторного использования, но и совершенствует наши навыки решения задач во всех предметных областях. Эта книга рекомендуется всем профессионалам и студен- там в области компьютерных технологий». — Ньютон Ли, основатель и старший редактор сайта acmcie.org (Association for Computing Machinery / Computers in Entertainment) Отзывы о книге «Если и есть тема, преподавание которой определенно требует большей занимательности, то это пат- терны проектирования. К счастью, у нас теперь есть эта книга. Великолепные авторы «Head First Java» используют все мыслимые приемы, чтобы помочь — вам по- нять и запомнить материал. Здесь вы найдете не только множество изображений людей, которые при- влекают внимание других людей. Сюрпризы повсюду! Многочисленные истории (например, о пицце и шоколаде. Стоит ли говорить еще?). Вдобавок книга невероятно смешная. В ней представлены множество концепций и приемов, а также почти все паттерны, которые чаще всего используются на практике: Наблюдатель, Декоратор, Фабрика, Одиночка, Команда, Адаптер, Фасад, Шаблонный Метод, Итератор, Компоновщик, Состояние, Заместитель. Прочитайте, и все они перестанут быть «просто словами», превратившись в воспоминания, которые задевают вас за живое, и инструменты, применяемые в повседневной работе». — Билл Камарда, READ ONLY «После использования «Head First Java» для обучения азам программирования я с нетерпением ждал следующего издания из этой серии. Я уверен, что данная книга быстро станет первой книгой, с ко- торой следует начинать знакомство с паттернами, — и она уже стала книгой, которую я рекомендую своим студентам». — Бен Бедерсон, адъюнкт-профессор в области информационных технологий, директор лаборатории взаимодействий «человек–компьютер» в Мэрилендском университете «Обычно во время чтения книги или статьи, посвященных паттернам программирования, мне приходит- ся время от времени щипать себя, чтобы убедиться в том, что я еще не заснул. С этой книгой все совершен- но иначе. Как ни странно, она делает изучение паттернов легким и веселым занятием». — Эрик Вулер «Я буквально влюблен в эту книгу. Я даже поцеловал ее на глазах у жены». — Сатиш Кумар Отзывы о технологии «Head First» «Технология Java повсюду: в мобильных телефонах, в машинах, фотоаппаратах, принтерах, играх, КПК, банкоматах, смарт-картах, бензонасосах, на стадионах, в медицинском оборудовании, веб-камерах, серве- рах... Если вы занимаетесь программированием, но еще не изучили Java, вам определенно стоит сделать это с книгой Head First». — Скотт Макнили, председатель совета директоров Sun Microsystems, президент и исполнительный директор «Книга читается быстро, она несерьезная, веселая и увлекательная. Будьте внимательны — из нее легко что-нибудь узнать!» — Кен Арнольд, бывший старший специалист в Sun Microsystems, соавтор книги «Язык программи- рования Java» (написанной вместе с Джеймсом Гослингом, создателем Java). ББК 32.973.2-018-02 УДК 004.42 Х99 Фримен Э., Робсон Э., Сьерра К., Бейтс Б. Х99 Head First. Паттерны проектирования. Обновленное юбилейное издание. — СПб.: Питер, 2018. — 656 с.: ил. — (Серия «Head First O’Reilly»). ISBN 978-5-496-03210-0 В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Мно- гие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга. Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного ис- пользования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» из- дательства O’Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ББК 32.973.2-018-02 УДК 004.42 Права на издание получены по соглашению с O’Reilly. Все права защищены. Никакая часть данной книги не может быть воспроизве- дена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. ISBN 978-0596007126 англ. Authorized Russian translation of the English edition of Head First Design Patterns, ISBN 9780596007126 © 2004, 2014 O’Reilly Media, Inc., Bert Bates and Kathy Sierra. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. ISBN 978-5-496-03210-0 © Перевод на русский язык ООО Издательство «Питер», 2018 © Издание на русском языке, оформление ООО Издательство «Питер», 2018 © Серия «Head First O’Reilly», 2018 Посвящается «Банде Четырех»; их прозорливость и мастерство в формулировке и описании паттер- нов проектирования навсегда изменили область проектирования программных архитектур и улуч- шили жизнь разработчиков во всем мире. Ну сколько можно ждать, когда выйдет второе издание? В конце концов, прошло уже десять лет! двадцать об авторах Авторы/разработчики книги Элизабет Робсон Эрик Фримен Эрик, по словам Кэти Сьерра, соавтора серии Head Элизабет — программист, писатель и преподаватель. First, — «один из редких людей, хорошо разбираю- Она влюблена в свою работу еще с времен учебы в щихся в языке, практике применения и культуре из Йельском университете, где получила степень маги- самых разных областей — технохипстер, вице-прези- стра в области компьютерных технологий, а также дент, инженер, аналитик». создала параллельный визуальный язык программи- рования и программную архитектуру. Эрик отработал почти десять лет на должности тех- нического директора Disney Online & Disney.com в Элизабет участвовала в создании популярного сайта компании The Walt Disney Company. Сейчас Эрик от- Ada Project — одного из первых, помогающих найти дает свое время WickedlySmart — молодой компании, женщинам информацию о работе и образовании в об- которую он создал совместно с Элизабет. ласти компьютерных технологий. По образованию Эрик является специалистом по Она стала одним из учредителей WickedlySmart — компьютерным технологиям; он занимался исследо- компании, работающей в области интернет-образо- ваниями вместе с корифеем отрасли Дэвидом Гелерн- вания на базе веб-технологий. Здесь она пишет книги, тером во время работы над диссертацией в Йель- статьи, создает видеокурсы и т. д. Ранее Элизабет за- ском университете. Его диссертация стала одним нимала должность директора по специальным про- из фундаментальных трудов в области альтернатив ектам в O’Reilly Media и разрабатывала семинары и для интерфейсов, реализующих метафору рабочего курсы дистанционного обучения по разным техниче- стола, а также первой реализацией потоков активно- ским темам, помогающие людям разобраться в новых сти — концепции, разработанной им совместно с док- технологиях. До прихода в O’Reilly Элизабет рабо- тором Гелернтером. тала в The Walt Disney Company, где она руководила исследованиями и разработками в сфере цифровых В свободное время Эрик серьезно занимается музы- мультимедийных технологий. кой; последний проект Эрика, созданный вместе с одним из пионеров направления «амбиент» Стивом Когда Элизабет не сидит за компьютером, она зани- Роучем, доступен в магазине iPhone App Store под на- мается велоспортом и греблей, фотографирует или званием Immersion Station. готовит вегетарианские блюда. Эрик живет с женой и маленькой дочкой в Остине С ней можно связаться по адресу beth@wickedlysmart. (штат Техас). Его дочь часто наведывается в студию com или посетить ее блог http://elisabethrobson.com. Эрика; ей нравится крутить рукоятки синтезаторов. Ему можно написать по адресу eric@wickedlysmart. com или посетить его сайт ericfreeman.com. 8 Создатели серии Head First (и соавторы книги) Кэтти Сьерра Берт Бейтс Кэтти интересовалась теорией обучения еще в те Берт — опытный программист и проектировщик, но времена, когда она создавала игры для Virgin, MGM его десятилетние изыскания в области искусствен- и Amblin’). Большая часть формата Head First ного интеллекта вызвали интерес к теории и техно- была разработана ею во время ведения курса New логии обучения. С тех пор он занимается повыше- Media Authoring для программы UCLA Extension’s нием квалификации программистов. В последнее Entertainment Studies. В последнее время она го- время возглавлял группу разработки сертификаци- товит специалистов для Sun Microsystems, учит ин- онных экзаменов по языку Java для корпорации Sun. структоров Java искусству преподавания новейших Первое десятилетие своей карьеры программиста Java-технологий; участвовала в разработке несколь- Берт путешествовал по всему миру, помогая СМИ — ких сертификационных экзаменов Sun. Вместе с таким, как Radio New Zealand, Weather Channel Бертом Бейтсом использовала концепции Head и Arts & Entertainment Network (A & E). Одним из First для обучения тысяч разработчиков. Кэтти яв- его любимых проектов того времени стало построе- ляется учредителем сайта javaranch.com, который в ние полного имитатора железнодорожной сети для 2003 и 2004 годах завоевал награды журнала Software Union Pacific Railroad. Development. Иногда преподает Java на курсах Java Jam Geek Cruise (geekcruises.com). Берт — заядлый поклонник игры го и давно работает над ее программированием. Неплохо играет на гита- Недавно Кэтти переехала из Калифорнии в Коло- ре, также пробует свои силы с банджо. радо. Здесь ей пришлось учить новые слова: «за- морозки», «плед» и другие, но зато пейзажи просто Его можно встретить на javaranch или на го-сервере потрясающие. IGS, можно написать ему по адресу terrapin@ wickedlysmart.com. Любит: бег, лыжи, скейтборд, свою исландскую ло- шадку и науку. Не любит: энтропию. Часто бывает на javaranch, иногда ведет блог на seriouspony.com. Пишите ей по адресу kathy@ wickedlysmart.com. 9