Я обычно использую несколько стратегий конфигурации, основанных на вероятности изменения.
Прежде всего никогда вставлять бизнес-правила в код, не документируя их каким-либо образом. В коде много переменных, и только некоторые из них можно безопасно изменить, сохраняя при этом правильное поведение. Обычно я ставлю константу в начале урока, чтобы определить, какое поведение можно изменить, т. Е.
// Prefer this
const int AllowDownloadAttempts = 2;
if (AttemptDownload() > AllowDownloadAttempts) RegisterAndAllowDownload();
// Over this
if (AttemptDownload() > 2) RegisterAndAllowDownload();
Основное правило, которому я следую, - это что-либо кроме [-1, 0, 1], которое должно быть задокументировано.
Если это не критично и вряд ли будет часто меняться, я бы поместил его в файл конфигурации приложений (например, App.config) и получил доступ к нему через строго типизированный класс конфигурации, чтобы вы могли отслеживать его использование, чтобы знать, когда его безопасно удалить или изменить.
Если бизнес-пользователи должны часто его менять или изменять, я бы сохранял его в базе данных и предоставлял простой графический интерфейс для редактирования, а затем загружал его в строго типизированный класс конфигурации при загрузке приложения.