Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
opi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.81 Mб
Скачать

Тема 13. Шаблони проектування. Структурні шаблони.

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

Один із способів вирішення даної проблеми – це повторне використання більш абстрактних структур, які не містять деталей реалізації. Перші реалізації цього підходу привели до документування і опублікування фундаментальних алгоритмів [201. Knuth D. E. The Art of Computer Programming: Fundamental Algorithms. — Reading, MA: Addison-Wesley, 1971. (Русский перевод: Кнут Д. Искусство программирования. Т. 1. Основные алгоритмы. — M.: Изд. дом "Вильямс", 2000.) ] , а потім до документування абстрактних типів даних, таких як стеки , дерева та списки [Booch G. Software Components with Ada: Structures Tools and Subsystems. — Menlo Park, CA : Benjamin Cummings, 1987.]. Пізніше такий спосіб повторного використання узагальнено в понятті патерну.

Поняття шаблону проектування.

Проектні патерни (design patterns) [Gamma E., Helm R. et aL Design Patterns: Elements of Reusable ObjectOriented Software. — Reading, MA : Addison-Wesley, 1995. (Русский перевод: Гамма Э., Хелм Р., Джонсон Р., Влассидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб. : Питер, 2001.)] з'явилися з ідей, висунутих Крістофером Александером [Alexander C., Ishikawa S. at aL A Pattern Language. — Oxford : Oxford University Press, 1977.], який запропонував зручні та ефективні узагальнені патерни розробки конкретних проектів . Патерн – це опис проблеми та методу її рішення, який дозволяє в подальшому використовувати це рішення в різних умовах. Патерн не є детальною специфікацією. Швидше, він являє собою опис, в якому акумульовані знання і досвід.

Патерн – це гарантоване вирішення загальної проблеми.

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

Основні елементи шаблону.

В [Gamma E., Helm R. et aL Design Patterns] визначено чотири основних елементи проектного патерну .

  1. Змістовне ім'я, яке є посиланням на патерн.

  2. Опис проблемної області з перерахуванням всіх ситуацій, в яких можна використовувати патерн.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]