Кому читать: программистам (начиная с уровня middle), практикующие парадигму объектно-ориентированного программирования.
Объектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Основная задача ООП — сделать сложный код проще. Для этого программу разбивают на независимые блоки (объекты), которые представляют набор данных и функций.
Объектно-ориентированное проектирование — это метод создания таких моделей, которые фокусируют внимание на объектах, найденных в самой предметной области, и образуют объектно-ориентированную декомпозицию.
Паттерны (или шаблоны) проектирования описывают типичные способы решения часто встречающихся проблем при проектировании программ.
Пара слов об авторах: над книгой работала группа авторов (Джонсон Ральф, Хелм Ричард, Влиссидес Джон, Гамма Эрих). Все связаны с программированием и информатикой. Их команда также известна как "Банда Четырех". Я думала, за этим названием стоит какая-то сногсшибательная история (типа как "Цэх поэтов"), но ничего подобного на просторах интернета не нашла, кроме фразы одного из членов банды "Почему нас так называют? Кто знает. Как-то название просто прижилось".
Это команда дружных, юморных, образованных людей. Несмотря на технический склад книги, они придерживаются простого и "живого" стиля. Например, в предисловии вместо занудных наставлений пишут "Книга созревала довольно долго. Она повидала четыре страны, была свидетелем женитьбы трех ее авторов и рождения двух младенцев."
О чем книга:
Авторы первыми структурировали и всесторонне исследовали приемы объектно-ориентированного проектирования, ввели понятие порождающих, структурных и поведенческих паттернов, собрали вместе базовые из них. Книга стала классикой программной инженерии.
Авторы предлагают простые и элегантные решения типичных задач, возникающих в объектно-ориентированном проектировании.
Они поделили книгу на две логические части: в первой больше говорится о возможностях и недостатках объектно-ориентированного программирования, во второй представлено 23 классических шаблона проектирования.
Примеры в книге написаны на языках программирования C++ и Smalltalk. Почти для всех шаблонов есть пример с графическим интерфейсом. Авторы излагают принципы использования паттернов проектирования и приводят их каталог.
Все описанные паттерны используют стандартные возможности языков, но это уже готовые и проверенные решения, т.е. не надо изобретать велосипед.
Не волнуйтесь, если не полностью поймете книгу с первого чтения. Авторы в предисловии шутят, что сами ее не поняли с первого написания! Помните, что эту книгу нельзя прочитать один раз и положить на полку. К ней надо периодически возвращаться, чтобы материал усвоился.
Отзывы знакомых программистов:
"Прочитал от корки до корки. После этого способ организации кода значительно улучшился!"
"Это книга не для "внеклассного чтения", а для практического применения. Все описанные техники можно и нужно опробовать, чтобы врубиться."
"Прочтите эту книгу, если вы еще этого не сделали. Подчерпните все хорошее, но не забывайте, что с тех пор мир изменился."