Krasorion.ru

Упаковочные материалы

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

Шаблон проектирования
Прототип
Prototype
Тип:

порождающий

Описан в Design Patterns

Да

Прототип, (англ. Prototype)порождающий шаблон проектирования.

Содержание

Назначение

Задаёт виды создаваемых объектов с помощью экземпляра-прототипа и создаёт новые объекты путём копирования этого прототипа.

Проще говоря, это паттерн создания объекта через клонирование другого объекта вместо создания через конструктор.

Применимость

Паттерн используется чтобы:

  • избежать дополнительных усилий по созданию объекта стандартным путем (имеется в виду использование ключевого слова 'new', когда вызывается конструктор не только самого объекта, но и конструкторы всей иерархии предков объекта), когда это непозволительно дорого для приложения.
  • избежать наследования создателя объекта (object creator) в клиентском приложении, как это делает паттерн abstract factory.

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

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

Примеры

Пример на C++

Пример на Java

Пример на C#

Пример на PHP

Пример на Ruby

Пример на VB.NET

Пример на Delphi

Литература

  • Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования = Design Patterns: Elements of Reusable Object-Oriented Software. — СПб: «Питер», 2007. — С. 366. — ISBN 978-5-469-01136-1 (также ISBN 5-272-00355-1)

См. также

Ссылки

  • Паттерн Prototype (Прототип) — назначение, описание, два варианта реализации (С++), достоинства и недостатки

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

© 2011–2023 krasorion.ru, Россия, Братск, ул. Ленинская 34, +7 (3953) 38-98-93