Вообще говоря, не существует шаблона проектирования для конкретной проблемы, которую вы описали.В зависимости от того, как вы хотите его смоделировать, вы можете реализовать такие шаблоны, как Стратегия , Состояние и / или Команда .Где каждый из них обеспечивает некоторую возможность для инкапсуляции состояния (например, какой тип предварительного просмотра и критерии) и некоторое связанное поведение.
Три варианта отслеживания критериев поиска с использованием различных областей переменных ColdFusion:
- сессия
- cookie
- клиент
Область сеанса
Это серверная память, связанная с данным пользователем с помощью файла cookie, в который разработчик может поместить информацию.Срок его действия истекает после периода бездействия, а ColdFusion обеспечивает обработку событий вокруг его инициализации и истечения с помощью Application.cfc
.Полезно, если вы решили прикрепить объекты с состоянием к каждому пользователю.Недостатком является то, что вы можете исчерпать память, если туда помещается много информации и / или используются долгоживущие сеансы.
Cookie
Устанавливает файлы cookie клиента.Может легко захватывать простые данные.Не удается захватить объекты - вам нужно сериализовать и десериализовать их состояние.Хорошо масштабируется, потому что сервер отслеживает только cookie.Легко взломан.
Клиент
Считывает и записывает данные, связанные с сеансом пользователя, из персистентности. По умолчанию это реестр в Windows - не используйте его, так как он может привести к краху вашего сервера с тяжелыми последствиями в случае повреждения реестра. Вместо этого обратитесь к администратору и настройте его на использование базы данных.Полезно, когда вы хотите отслеживать много информации о ваших пользователях, когда они перемещаются по сайту, но только в масштабе и в резервной базе данных.Необходимо сериализовать данные как в области cookie.