PHP шаблоны: Prototype (генерация объектов)

PHPКомментариев нет

Проблема:

Требуется добавить большой объем данных в базу данных, при условии что мы используем ORM.

Решение:

[file: BookPrototype.php] — абстрактный класс, который будет клонировать другие объекты которые являются прототипом BookPrototype(наследуют данный абстрактный класс).

[file: BarBookPrototype.php] — тип книги «Bar», которые наследуют прототип книги

[file: FooBookPrototype.php] — тип книги «Foo», которые наследуют прототип книги

Применение

 

Минусы:

Объекты клонируются в текущем состоянии, в котором и были созданы(допустим с теми же установленными свойствами что были установлены при инициализации). Об этом стоит постоянно помнить. Для обнуления свойств объекта можно использовать встроенный метод __clone().

Плюсы:

Помогает избежать затрат на создание объектов стандартным способом (new Foo()), а вместо этого создаёт прототип и затем клонирует его.

 

Источник: https://designpatternsphp.readthedocs.io/ru/latest/Creational/Prototype/README.html


Комментарии закрыты!