ИМХО, это на самом деле хороший подход. Это безопасно для типов, добавьте ту абстракцию уровня, которая может позволить вам изменять вещи с минимальным воздействием.
Пример того, что вы можете изменить, если вы решили, что какое-то состояние должно быть перемещено в кэш или даже в базу данных в сочетании с кэшированием, это потребует дополнительной синхронизации потоков, но все они могут обрабатываться внутренними компонентами этого класса. Вы можете подумать об изменении имени класса на что-то менее специфичное для сессии.
Единственный комментарий, который я хотел бы дать вашему конкретному примеру, заключается в том, что вы должны проверить, что переменная Session не null
, и либо вернуть соответствующее значение по умолчанию, либо утвердить, либо вызвать информационное исключение, если оно есть. На всякий случай, если свойство читается перед его установкой.