Jump to ratings and reviews
Rate this book

Design Patterns: Elements of Reusable Object-Oriented Software

Rate this book
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.

The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.

Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.

416 pages, Hardcover

First published January 1, 1994

Loading...
Loading...

About the author

Erich Gamma

16 books128 followers
Erich Gamma is a Swiss computer scientist and co-author of the influential software engineering textbook, Design Patterns: Elements of Reusable Object-Oriented Software.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
5,392 (44%)
4 stars
4,276 (35%)
3 stars
1,840 (15%)
2 stars
406 (3%)
1 star
122 (1%)
Displaying 1 - 19 of 19 reviews
Profile Image for Julia Roslyakova.
75 reviews8 followers
Read
November 20, 2019
Очень полезная и крутая книга, написанная самым ужасным языком, который можно вообразить.
3 reviews1 follower
October 9, 2019
Впервые все паттерны, собранные в одном месте. Хорошие приемеры, сравнения паттернов и описания их сходств и возможных взаимодействий и "взаимопомощи". Так же можно воспользоваться наглядными примерами на refactoring.guru
Profile Image for Vladimir Ryashentsev.
22 reviews4 followers
May 7, 2017
Книга хороша не только самими шаблонами, но и размышлениями мотивирующими использовать их. Если в шаблонах мы видим более или менее конкретные решения наших проблем, то в размышлениях вокруг шаблонов мы можем увидеть принципы проектирования.
Profile Image for Olzhas Ilyubayev.
2 reviews
October 31, 2015
Думаю, что для новичка не подойдет - так как книга в целом выглядит как справочник.
Profile Image for  Maksim.
116 reviews4 followers
March 6, 2016
Отличная книга, для тех, кто хочет ознакомиться или закрепить знания по паттернам проектирования. Воды не так много, присутствуют адекватные примеры применения.
6 reviews2 followers
May 11, 2022
Действительно фундаментальный труд. Самое глубокое и детальное объяснение паттернов ( в сравнении с другими книгами по паттернам)

Весомым минусом является возраст книги. Много проблем не(или мало)актуальны. Примеры и известные применения также достаточно тяжелы для восприятия в силу своей давности

Как первую книгу по паттернам не рекомендую.
Profile Image for Siarhei.
91 reviews6 followers
July 25, 2021
Прочитал "для галочки".

И вот непонятно, когда эту книгу нужно читать. В самом начале карьеры? Но в начале карьеры ещё нет понимания описываемых проблем, в голове получится каша. Поднабравшись опыта? Но тогда всё описываемое будет уже очевидным.
Profile Image for Arthur Gavrichenko.
4 reviews
August 17, 2017
Очень полезная книжка для понимания основных шаблонов проектирования
Profile Image for Andrii.
30 reviews
November 25, 2015
Решил освежить в памяти паттерны из, не побоюсь этого слова, легендарной книги и ничуть не жалею проведенного времени. Единственный нюанс - мне в руки попалось издание в переводе на русский. Возможно, перевод и не плох, но, после 50 страниц, читать стало невыносимо из-за интерпретации терминов с английского на русский и от меня требовалась дополнительная умственная активность, чтобы найти отображение этих терминов в моих знаниях. Все наладилось, когда я начал читать на языке оригинала :)
Мой совет: читайте книгу на английском, чтобы у Вас изначально формировалисья правильные связи термин-значение. Одна из задач, которую ставили перед собой авторы, предоставить словарь терминов, который облегчит разработчикам задачу понимания друг-друга при обсуждении архитектуры приложения для решения сложных задач. Чтение на языке оригинала поможет Вам в дальнейшем, когда вы столкнетесь с реализацие какого-нибудь паттерна в коде, т.к. часто разработчики называют классы и методы схожими по названию с описанием в данной книге.
Отличная книга, которая обязательно будет на видном месте в моей библиотеке:)
20 reviews2 followers
July 13, 2015
Подавляющее большинство частных архитектурных задач объектно-ориентированного проектирования, с которыми разработчик ПО сталкивается в своей деятельности, уже когда-то кем-то было решено. Рассматривайте эту книгу, как некий каталог, в который стоит заглянуть перед началом построения вами очередного архитектурного велосипеда. Но ни в коем случае не воспринимайте содержимое этой книги в качестве некой догмы, которой необходимо неукоснительно следовать. К паттерну проектирования можно прийти в процессе решения вашей задачи, но нельзя решать задачу, "натягивая" её на паттерн. Это часто приводит к излишнему усложнению вашего кода.
P.S. Не воспринимайте как рекламу, но я советую к прочтению также хорошую книгу С.Теплякова о применении паттернов проектирования в среде .NET с точки зрения опытного разработчика.
Profile Image for Anton.
11 reviews
February 3, 2013
Книга посвящена описанию шаблонов проектирования. В начале книги проводится пример дизайна редактора документов с использованием различных паттернов. По мере описания примера определяются проблемы и способы их решения. Далее идет описание шаблонов проектирования разбитых на несколько классов (каталог паттернов). Целью прочтения книги была систематизация опыта.
Прочтение книги позволило рассмотреть ряд проблем проектирования и способов их решения. С многими проблемами и решениями приходилось сталкиваться раньше, книга структурирует эти знания, заставляет еще раз задуматься (и разобраться) над каждым решением и возможными его применениями.
Profile Image for Rodion Krivoshein.
66 reviews5 followers
June 12, 2016
Без острой необходимости лучше не читать, т.к. преждевременный exposure к описанным паттернам может сыграть обратную роль, замедлив развитие.

Инфу по базовым и наиболее встречающимся паттернам лучше получить из книги Agile Software Development by Robert C. Martin
Profile Image for snpefk.
101 reviews7 followers
September 17, 2018
Немного устаревшая, когда дело доходит до «implementation» и примеров с кодом (всмысле Smalltalk в 2017, рили нигга?), иногда очень скучная (я и в первый раз понял как это работает, не надо повторять дважды), но все равно очень хорошая теория. Помогла разложить по полочкам мою лапшу.
Profile Image for Dmitrey Naumenko.
4 reviews
January 18, 2008
На удивление быстро прочитал. Где-то недели за 2. Честно говоря эта книга не научит тебе писать хорошо спроектированные программы. Все, что она сделает, - это покажет некоторые удачные приемы.
45 reviews3 followers
February 2, 2013
Следует прочитать любому программисту
Profile Image for Aleksandr Beljakov.
13 reviews1 follower
Read
December 2, 2017
Интересно было прочитать набор паттернов.
За свою профессиональную карьеру успел перепробовать почти все паттерны из этой книги.

Тяжело идёт чтение, так как книга скучновата. Это набор рецептов и методов применений их. Изучать паттерны можно в любом порядке и по этому нет связи между главами. Такой подход не даёт хорошего настроя на чтение.

Для себя открыл интересные обоснования для использования уже известных мне паттернов, очень хорошо описаны все за и против паттернов и когда имеет смысл применять.

Для программиста обязательно к прочтения.
Displaying 1 - 19 of 19 reviews