Шаг 1 - Введение в паттерны проектирования

Когда любой - абсолютно любой проектировщик приступает к работе, он НЕ начинает работу с чистого листа. Конструктор легковых автомобилей точно знает, что будет четыре колеса, не больше и не меньше. Что можно сделать передний, задний или полный привод - но не гребное колесо, точно, и что от привода будет зависеть применение рулевой рейки или трапеции - но хвостового оперения не будет как пить дать. По другому не бывает. Проектировщик имеет некоторый набор стандартных приемов, которые он будет применять в работе. Конечно, он сделает что-то и нестандартное, свое - но наверняка другими стандартными средствами, только более низкоуровневыми. Но большей частью он будет применять идеи и решения, миллионы раз и тысячи лет назад придуманные и опробованные.

Мы, программисты, тоже имеем набор стандартных идей и решений, и, вероятно, используем их гораздо шире и эффективнее чем кто-либо еще. У нас в запасе всегда есть алгоритм сортировки, упакованный в функцию или класс, источник данных, упакованный в объект COM, и сверху еще в класс C++ или компонент Delphi, или в худшем случае функция WinAPI SetWindowText(). Но "эффективнее" - не значит "достаточно эффективно". К сожалению, совсем наоборот. Примеров много - самостоятельное изобретение архитектур, серверов приложений, решений и велосипедов - для многих это любимое занятие. В общем, это правда - мы, российские программисты - изощренные и хитрые, но с проектированием у нас слабовато. Что делать?

Спросить у буржуев. Они уже знают. Их ответ таков:

Нужно собрать наиболее эффективные решения, систематизировать, выделить в них самое главное, дать названия, классифицировать, описать достоинства и недостатки, и дать простой пример - не перегружающий коры головного мозга. И они сделали это.

Четыре ведущих специалиста IBM, вооруженные единственно верным учением Буча-Рамбо-Джейкобсона, свели воедино 23 стандартных приема в одну тонкую, но важную книгу. Вот имена этих героев: Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес. А книга именуется "Приемы объектно-ориентированного проектирования. Паттерны проектирования".

Далее я собираюсь дать краткий обзор каждого приема (далее паттерна). Переписывать книгу не буду (тем более это будет нарушение копирайт), только небольшое описание, вид и схема решения. Тем более что список паттернов расширяется. Четверо смелых ввели в свой список еще один, а вообще признанных паттернов больше. Десяток паттернов, например, имеют применение только для Visual Foxpro (не проверял, видел мельком в Интернете). Большая часть паттернов черезвычайно просты и не требуют даже иллюстрации. Вы используете их постоянно - вероятно не зная об этом (как мольеровский мещанин, который не знал, что говорит прозой).


Следующий Шаг | Оглавление
Автор Albert Makhmutov - 02.07.2001