У меня есть статический класс, в котором я храню большое количество относительных путей, которые используются в разных местах моего приложения.Это выглядит так:
static class FilePathConstants
{
public const string FirstDirectory = "First";
public const string FirstSecondDirectory = "First/Second";
public const string FirstSecondThirdFileA = "First/Second/Third/FileA";
public const string FirstSecondFourthFileB = "First/Second/Fourth/FileB";
... nearly 100 of similar members
}
Все они относятся к некоторому родительскому каталогу, местоположение которого я знаю только во время запуска программы.Мне нужно хранить их все вместе, потому что это позволяет мне легко контролировать, какие файлы используются моим приложением, и время от времени менять их расположение.
Однако даже если они организованы в алфавитном порядке и легко найти определенный путь, мне нужно иметь возможность изменять некоторые из них в зависимости от некоторых настроек.Допустим, есть настройка «bool SettingA», и когда я ее включаю, мне нужно изменить некоторые пути, чтобы использовать другой каталог или другое имя файла.
Проблема в том, что теперь я не могу использовать константы, мне приходится переписывать свой код в свойства или методы, чтобы я мог изменять пути к файлам во время выполнения.А вот где мой код становится намного больше по размеру и строгий порядок теперь выглядит безобразно.Есть ли способ, которым я могу сгруппировать их, чтобы это не смутило никого, кто использует этот код?Я не могу разбить их на отдельные классы, потому что трудно вспомнить, в каком классе вы можете хранить константу.Пока я группирую их по регионам, но у меня плохое предчувствие, что хранить более ста свойств в одном классе неправильно.
Редактировать:
Все каталоги и файлы, которые я объявляю в FilePathConstants
, используются в большом количестве мест в приложении (каждый путь может использоваться несколько раз, принимая во внимание тот факт, что существует более ста путей - это большое количество).Я хотел бы сохранить интерфейс этого класса таким же или с минимальными изменениями для других классов, которые их используют.