Сброс объектов по сравнению с построением новых объектов

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

Я видел, что оба метода использовали много, но я не могу решить, какой лучше. Конечно, для классов, которые представляют соединения с базой данных, необходимо было бы использовать метод сброса вместо того, чтобы создать новый, приводящий к бесполезному соединению/разъединению, но я говорю больше с точки зрения классов абстракции.

Кто-либо может дать мне некоторые реальные примеры того, когда использовать каждый метод? В моем особом случае я думаю главным образом с точки зрения ORM или Модели в MVC. Например, если я хотел бы получить набор объектов базы данных для дисплея и изменить их в одной операции.

5
задан tereško 10 February 2013 в 14:13
поделиться

2 ответа

При повторном использовании объектов используется шаблон Пул объектов .

Один из основных вопросов, который следует учитывать, - это то, какое состояние имеют эти объекты, и какую часть этого состояния необходимо сбросить для следующего пользователя. С подключением к базе данных вы не хотите, чтобы снова выполнять подключение - в противном случае вы могли бы просто создать новое. Идея состоит в том, чтобы оставить объект подключенным, но очистить любые результаты.

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

  • Сложность пула
  • Затраты памяти на создание экземпляров этих объектов, когда они не требуются. Это может даже замедлить сборку мусора.
  • Точное определение того, какое состояние необходимо сбросить

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

  • Создание или уничтожение объекта занимает слишком много времени

Дополнительные подробности в статье Кирхера и Джейна .

3
ответ дан 15 December 2019 в 06:21
поделиться

Сброс выполняется из соображений производительности. Подход по умолчанию заключается в создании нового объекта, когда он вам нужен, а не переработке существующего. Если вы не беспокоитесь о том, что ваш php медленный, чем просто create. Если вы беспокоитесь о том, что php работает медленно, вам следует остановиться и подумать о других вещах, которые, по вашему мнению, будут намного медленнее.

0
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: