Page 25 - 4252
P. 25
цієї книги відома громадськості під назвою Банда чотирьох (Gang of Four, часто
скорочується до GoF). Саме ця книга стала причиною зростання популярності
шаблонів проектування.
Іншим видатним діячем у галузі проектування програмних систем, який
підтримав використання патернів, є Мартін Фаулер, який написав книгу "Архі-
тектура корпоративних програмних додатків" (Patterns of Enterprise Application
Architecture). Як зазначив Мартін Фаулер у своїй книзі "збираючись скориста-
тися типовими рішеннями, не забувайте, що вони тільки відправна точка, а не
пункт призначення".
У книзі Крейга Лармана "Застосування UML і шаблонів проектування"
описано 9 шаблонів GRASP (General Responsibility Assignment Software Patterns,
загальні зразки розподілу обов'язків) - патернів, використовуваних в об'єктно-
орієнтованому проектуванні для вирішення спільних завдань за призначенням
обов'язків класам і об'єктам. Кожен з них допомагає розв'язати певну проблему,
що виникає при об'єктно-орієнтованому аналізі, і яка виникає практично в
будь-якому проекті з розробки програмного забезпечення.
Головна користь кожного окремого шаблону полягає в тому, що він опи-
сує рішення цілого класу абстрактних проблем. Також той факт, що кожен ша-
блон має своє ім'я, полегшує дискусію про абстрактні структури даних (ADT)
між розробниками, так як вони можуть посилатися на відомі шаблони. Таким
чином, за рахунок шаблонів проводиться уніфікація термінології, назв модулів і
елементів проекту.
Правильно сформульований шаблон проектування дозволяє, відшукавши
вдале рішення, користуватися ним знову і знову.
Однак іноді шаблони консервують громіздку і малоефективну систему
понять, розроблену вузькою групою. Коли кількість шаблонів зростає, переви-
щуючи критичну складність, виконавці починають ігнорувати шаблони і всю
систему, з ними пов'язану. Нерідко шаблонами замінюється відсутність або не-
доліки документації, яка складна програмному середовищі.
Є думка, що сліпе застосування шаблонів з довідника, без осмислення
причин і передумов виділення кожного окремого шаблону, уповільнює профе-
сійне зростання програміста. Люди, які дотримуються цієї думки, вважають, що
знайомитися зі списками шаблонів треба тоді, коли "доріс" до них в професій-
ному плані - і не раніше. Хороший критерій потрібного ступеня професіоналіз-
му - виділення шаблонів самостійно, на підставі власного досвіду. При цьому,
зрозуміло, знайомство з теорією, пов'язаної з шаблонами, корисно на будь-
якому рівні професіоналізму і направляє розвиток програміста в правильну сто-
рону. Сумніву піддається тільки використання шаблонів "за довідником".
Шаблони можуть пропагувати погані стилі розробки додатків, і часто слі-
по застосовуються.
Шаблони проектування класифікують таким чином:
Патерни проектування класів / об'єктів;
o Структурні патерни проектування класів / об'єктів;
24