Я немного смущен этой частью:
Обработчик сеанса, в свою очередь, генерирует идентификатор сеанса из настроек, которые он ввел.И оттуда вводит идентификатор сеанса и другие параметры, относящиеся к этой службе хранения.
Вы уже сказали, что обработчик сеанса зависит от службы хранения.Было бы плохой идеей, чтобы служба хранения также имела некоторую зависимость от обработчика сеанса, потому что тогда ваш процесс инициализации намного сложнее и подвержен ошибкам, чем это необходимо.
Так что вот вопрос: какие настройкинужна служба хранения от обработчика сеанса?Можете ли вы удалить какие-либо или все эти зависимости из службы хранения?Если это так, вы должны сделать это.
В качестве практического примера: допустим, служба хранения поддерживает хранение данных в виде именованных больших двоичных объектов (которые могут быть реализованы в виде файлов, или в виде строк в таблице базы данных, или чего-либо еще).).Вы используете имя, зависящее от идентификатора сеанса, для хранения данных сеанса.Вам не нужно сообщать службе хранения, что такое идентификатор сеанса, но вместо этого запишите обработчик сеанса и предоставьте эту информацию службе хранения только всякий раз, когда она использует функциональные возможности хранения.
Другими словами,постарайтесь, чтобы ваши данные были сгруппированы логически.Есть ли конкретная проблема, которая мешает вам сделать это?