Не похоже на полицейский, но это действительно будет полностью зависеть от вашего приложения.Очень простым приложениям (похоже, что вы говорите о веб-приложениях, поэтому я пропущу толстых клиентов), обычно не требуется ничего, кроме глобальной конфигурации (для этого вы можете использовать web.config и singleton) и конфигурации для каждого пользователя (таблица пользователяи, возможно, с этим может справиться связанная таблица конфигурации или таблица пар имя / значение.
Более сложным приложениям может потребоваться полная иерархия конфигурации, которая может быть защищена и переопределена. Например, у меня может быть несколько значений по умолчанию, определенных приложением, чтоможет быть переопределено для каждой группы, к которой принадлежит пользователь, для самого пользователя и, наконец, для администратора определенной величины для определенной группы или пользователя, которые не могут быть переопределены пользователем.
Для этого я обычно используюСинглтон-объект «root config», который имеет методы, которые предоставляют дополнительные уровни иерархии и свойства конфигурации на каждом уровне. Корень отвечает за разрешение иерархии, но при необходимости (например, для настройки config) вы можете самостоятельно пройти через иерархию для решенияс сеттинgs относится к одному уровню в иерархии.
И, наконец, существует проблема задержки.Если вы ожидаете, что параметры конфигурации будут часто меняться, считывать их из хранилища каждый раз, когда они запрашиваются, лучше, но дороже.
Если нет, вы можете кэшировать настройки вместе с датой «последнего чтения» ипросто перечитайте значения настроек в кеш после истечения срока действия.