Шаблон проектирования Prototype | OTUS
Прямо сейчас идет открытый вебинар «Обзор инструментов IAM, PAM и управления доступом.» . Присоединяйтесь!

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

Arch_headline_970x70-1801-410a68.png

Этот порождающий шаблон проектирования задает виды создаваемых объектов посредством экземпляра-прототипа, то есть создание новых объектов происходит путем копирования этого прототипа. В результате появляется возможность уйти от реализации и следовать принципу «программирование через интерфейсы». В роли возвращающего типа указывают интерфейс/абстрактный класс на верху иерархии, причем классы-наследники могут подставить туда наследника, реализующего данный тип.

Если привести пример из жизни, можно вспомнить овечку Долли, которая была клонирована. Углубляться в ее историю нет необходимости, главное, что стоит понять, заключается в том, что все здесь вращается вокруг клонирования.

Если сказать все простыми словами, то шаблон проектирования Prototype создает объект, который основан на уже существующем объекте посредством клонирования.

То есть вы сможете создавать копию уже существующего объекта, а потом выполнять модернизацию с учетом ваших нужд. И это неплохо в том плане, что не надо создавать объект заново.

Теперь давайте обратимся к коду. В PHP реализовать все это можно посредством clone:

Screenshot_1-1801-84ba73.png

Далее можно выполнить клонирование так:

Screenshot_2-1801-397c83.png

Кроме того, для изменения клонирующего поведения вы можете задействовать волшебный метод ___clone_.

Когда применять?

Паттерн пригодится, если вам нужен объект, который похож на уже существующий объект. Или же, когда создание дороже клонирования.

Напоследок вы можете ознакомиться с примером реализации шаблона «Прототип» на Java.

Arch_headline_970x70-1801-410a68.png

По материалам статьи «Design Patterns for Humans».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто