Однократный посетитель


В компьютерном программировании шаблон однократного посетителя является шаблоном проектирования . Его целью является оптимизация реализации посетителя , который выделяется, используется только один раз, а затем удаляется (как в случае с большинством посетителей).

Шаблон однократного посетителя следует использовать, когда посетителям не нужно оставаться в памяти. Это часто имеет место при посещении иерархии объектов (например, когда шаблон посетителя используется вместе с составным шаблоном ) для выполнения над ним одной задачи, например подсчета количества камер в 3D-сцене.

Шаблон обычного посетителя следует использовать, когда посетитель должен оставаться в памяти. Это происходит, когда посетитель настроен с рядом параметров, которые необходимо хранить в памяти для последующего использования посетителем (например, для хранения параметров рендеринга средства визуализации 3D-сцены).

Однако, если во всей программе должен быть только один экземпляр такого посетителя, может быть хорошей идеей реализовать его как посетителя с одним обслуживанием, так и как singleton . При этом гарантируется, что одноразовый посетитель может быть вызван позже с неизмененными параметрами (в данном конкретном случае «одноразовый посетитель» является ненормативной лексикой, поскольку посетитель может использоваться несколько раз).

Если необходимо инициализировать одноразового посетителя, параметры должны быть переданы через статический метод: