Что вы предлагаете, так это хранить информацию о пользователе в singleton . Это хорошо известный шаблон, который довольно часто используется в настольных приложениях. Существует также много стигмы, связанной с одноэлементной структурой, на которую часто не одобряют некоторые недостатки:
- Тестируемость, если у вас есть синглтон, который не отображается через интерфейс, то невозможно (или просто) протестировать ваш код.
- Масштабируемость, синглтон всегда будет синглтоном, поэтому вы не можете разделить эту ответственность
между несколькими экземплярами, чтобы позволить вашему приложению масштабироваться. Обычно это касается только серверных приложений. На рабочий стол это действительно не распространяется
- Параллелизм, у вас есть несколько потоков, обращающихся к вашему синглтону? если это так, вам нужно сделать его безопасным для потоков.
В вашем контексте в настольном приложении единственное из вышеперечисленного, которое может быть проблемой, - это первое - тестируемость. В этом случае просто определите интерфейс IUser
, и все хорошо.
В общем, да, это нормально. Я сам использовал этот шаблон много раз в прошлом.