Page 102 - 4190
P. 102
нюються один з одним;
5) потрібно розібратися з причинами, які викликають перепрое-
ктування. Перелік причин наведено вище. Можливо, серед них вка-
зується вибрана проблема. Потім необхідно вивчити патерни, які до-
поможуть усунути цю причину;
6) необхідно вияснити, що в дизайні повинно бути змінним. Такий
підхід протилежний дослідженню причин, що викликають необхід-
ність перепроектування. Крім того слід передбачити, що могло б
примусити змінити дизайн, а також, що можна змінити без перепрое-
ктування. Акцент тут робиться на інкапсуляції сутностей, шо підля-
гають зміна, а предмет багатьох патернів. У таблиці 9.1. перелічені ті
аспекти, дизайну, які різні патерни дозволяють змінювати незалежно,
усуваючи тим самим необхідність у перепроектуванні.
Як користуватися патерном проектування. Розглянемо пере-
лік кроків, які можуть допомогти ефективно застосовувати патерни:
1. Ознайомитися з описом патерна, щоб отримати про нього за-
гальне уявлення. Переконатися, що вибраний патерн дійсно підходить
до вирішення вказаної задачі.
2. Вивчіть структуру, учасників і відношення в патерні. Переко-
найтеся, що розумієте згадані в патерні класи і об’єкти, а також те, як
вони взаємодіють один з одним.
3. Переглянути в розділі приклад коду, де наведено конкретний
приклад використання патерну в програмі. Вивчення коду допоможе
зрозуміти, як потрібно реалізувати патерн.
4. Вибрати для учасників патерна потрібні імена. Імена учасни-
ків патерну, як правило, досить абстрактні, щоб їх можна було безпо-
середньо використати в коді. Але буває корисним включити ім’я уча-
сника як ім’я в програмі. Це допомагає зробити патерн більш очеви-
дним при реалізації. Наприклад, якщо використовувати патерн стра-
тегія в алгоритмі розміщення тексту, то класи могли б називатися
SimpleLayoutStrategy або TeXLayoutStrategy
5. Визначити класи. Оголосити їх інтерфейси, встановити відно-
шення успадкування і визначити змінні екземпляру, якими будуть
представлені дані об’єкти і посилання на інші об’єкти. Виявити кла-
си, що є в додатку, на які патерн впливає, і відповідним чином моди-
фікуйте їх.
102