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