Прототип (шаблон проектування)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Прототип (англ. Prototype) - шаблон проектування, відноситься до класу твірних шаблонів.

Призначення[ред.ред. код]

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

Застосування[ред.ред. код]

Слід використовувати шаблон Прототип коли:

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

Структура[ред.ред. код]

UML діаграма, що описує структуру шаблону проектування Прототип
  • Prototype – прототип:
    • визначає інтерфейс для клонування самого себе;
  • ConcretePrototype – конкретний прототип:
    • реалізує операцію клонування самого себе;
  • Client – клієнт:
    • створює новий об'єкт, звертаючись до прототипу із запитом клонувати себе.

Переваги[ред.ред. код]

  • Створює глибоку копію комплексної ієрархії об'єктів
  • Зменшення навантаження ініціалізації
  • Багаторазові можливості - оптимізовані зусилля щодо кодування
  • Спрощений процес копіювання об'єктів:

Недоліки[ред.ред. код]

  • Додаткові витрати на розробку
  • Потребує уважності і точності при глибокому копіюванні

Відносини[ред.ред. код]

Клієнт звертається до прототипу, щоб той створив свого клона.

Реалізація[ред.ред. код]

Приклад С++[ред.ред. код]

Джерела[ред.ред. код]

Література[ред.ред. код]

Алан Шаллоуей, Джеймс Р. Тротт. Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию = Design Patterns Explained: A New Perspective on Object-Oriented Design. — М. : «Вильямс», 2002. — 288 с. — ISBN 0-201-71594-5.