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

призначення

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

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

застосовність

Патерн використовується щоб:

  • уникнути додаткових зусиль зі створення об'єкта стандартним шляхом (мається на увазі використання ключового слова 'new', коли викликається конструктор не тільки самого об'єкта, а й конструктори всій ієрархії предків об'єкта), коли це недозволено дорого для додатка.
  • уникнути успадкування творця об'єкта (object creator) в клієнтському додатку, як це робить патерн abstract factory.

Використовуйте цей шаблон проектування, коли система не повинна залежати від того, як в ній створюються, компонуються і представляються продукти:

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

Приклад на C ++

Дивитися що таке "Прототип (шаблон проектування)" в інших словниках:

Шаблон проектування - Цей термін має також інші значення див. Патерн. У розробці програмного забезпечення, шаблон проектування або патерн (англ. Design pattern) повторимо архітектурна конструкція, що представляє собою рішення проблеми ... ... Вікіпедія

Інтерфейс (шаблон проектування) - Шаблон проектування Інтерфейс Interface Описано в Design Patterns Ні В інформатиці, шаблон інтерфейсу не є особливим шаблоном серед шаблонів проектування. Він є загальним методом для структурування комп'ютерних програм для того ... Вікіпедія

Хранитель (шаблон проектування) - Шаблон проектування Хранитель Memento Тип: поведінковий Описано в Design Patterns Так Хранитель (також відомий як Memento, Token, Лексема) поведінковий шаблон проектування. Дозволяє, не порушуючи инкапсуляцию, зафіксо ... Вікіпедія

Итератор (шаблон проектування) - Шаблон проектування Итератор Iterator Тип: поведінковий Описано в Design Patterns Так Шаблон Iterator (також відомий як Cursor) Шаблон проектування, відноситься до паттернам поведінки. Являє собою об'єкт, що дозволяє отримати ... Вікіпедія

Інтерпретатор (шаблон проектування) - Шаблон проектування інтерпретатор Interpreter Тип: поведінковий Призначення: вирішує таку поширену, піддану змінам завдання Описано в Design Patterns Так Шаблон інтерпретатор (англ. ... Вікіпедія

Компоновщик (шаблон проектування) - Шаблон проектування Компоновщик Composite Тип: структурний Описано в Design Patterns Так Компоновщик (англ. Composite pattern) шаблон проектування, відноситься до структурних паттернам, об'єднує об'єкт ... Вікіпедія

Стан (шаблон проектування) - Шаблон проектування Стан State Тип: поведінковий Описано в Design Patterns Так Стан (англ. State) шаблон проектування. Використовується в тих випадках, коли під час виконання програми об'єкт ... Вікіпедія

Пристосуванець (шаблон проектування) - Шаблон проектування пристосуванець Flyweight Тип: структурний Описано в Design Patterns Так пристосуванець (англ. Flyweight) це об'єкт, який представляє себе як унікальний екземпляр в різних місцях програми, але по факту не ... ... Вікіпедія

Адаптер (шаблон проектування) - Цей термін має також інші значення див. Адаптер. Шаблон проектування Адаптер Adapter ... Вікіпедія

Команда (шаблон проектування) - Цей термін має також інші значення див. Команда. Шаблон проектування Команда Command Тип: поведінковий Призначення: для обробки команди у вигляді об'єкта ... Вікіпедія

  • Прототип (шаблон проектування). Джессі Рассел. Ця книга буде виготовлена ​​в відповідності з Вашим замовленням за технологією Print-on-Demand. High Quality Content by WIKIPEDIA articles! Прототип, (англ. Prototype) - породжує шаблон ... Детальніше Купити за тисячу сто двадцять п'ять руб

Схожі статті