Page 39 - 4190
P. 39

патернів можна вести обговорення з колегами, нагадувати патерни в
            документації, в тонкощах уявляти дизайн системи. Знаходження хо-
            роших імен було однією зі складних задач при створенні каталогу.
                  2. Задача. Описано коли можна застосовувати патерн. Необхідно

            сформулювати  задачу  і  її  контекст.  Може  описуватися  конкретна
            проблема проектування, наприклад, спосіб представлення алгоритмів
            у  вигляді  об’єктів.  Інколи  відмічається,  які    структури  класів  або

            об’єктів  свідчать про негнучкий дизайн. Також може включатися пе-
            релік умов, за виконання яких є сенс застосовувати   данний паттерн.
                  3.  Рішення.  Описано  елементи  дизайну,  відношення  між  ними,
            функції кожного елементу. Конкретний дизайн або реалізація як шаб-

            лону, що застосовується в різноманітних ситуаціях.  Просто дається
            абстрактний опис задачі проектування, як вона може бути вирішена
            за допомогою деякого досить узагальненого поєднання елементів (у

            даному випадку класів і об’єктів).
                  4.  Результати.  Наслідок  застосування    патерна  і  різноманітні
            компроміси. Хоча при описі  проектних рішень про наслідки  часто не

            згадується,  знати  про  них  необхідно,  щоб  можна  було  вибрати  між
            різними  варіантами та оцінити переваги і недоліки даного патерна.
            Тут мова йде про  вибір мови і реалізації.

                  Оскільки в об’єктно-орієнтованому проектуванні повторне вико-
            ристання часто є важливим фактором, то до результатів слід відноси-
            ти і вплив на ступінь гнучкості, розширення і перенесення системи.
            Перерахунок усіх наслідків допоможе програмісту зрозуміти і оціни-

            ти їх роль.
                  Отже, те, що один сприймає як патерн, для іншого просто будіве-
            льний блок.  В випадку розглядаються патерни на певному рівні абс-

            тракції. Патерни проектування  - це не теж саме, що пов’язані списки,
            які можна реалізовувати у вигляді класів і повторно використовувати
            без  будь-яких  модифікацій.  Але  це  і  не  складні  предметно-
            орієнтовані рішення для певного додатку або підсистеми. У даному

            випадку  під  патернами  проектування  розуміють  опис  взаємодії
            об’єктів і класів, адаптованих для рішення загальної задачі проекту-
            вання в конкретному контексті.

                  Патерн  проектування  іменує,  абстрагує  та  ідентифікує  ключові
            аспекти структури загального рішення, які і дозволяють застосовува-
            ти його для створення повторного дизайну, що використовують. Він

            виокремлює класи та екземпляри їх роль і відношення, а також функ-
            ції. При описі кожного патерна увага акцентується на конкретній за-

                                                              39
   34   35   36   37   38   39   40   41   42   43   44