Так, например, файл .txt обрабатывается TextParser, CSV-файл обрабатывается CSV-файлом, файл .doc обрабатывается MSWordParser, все остальное обрабатывается GenericParser и т. Д.?
Ну, первое, что нужно было бы создать интерфейс, то есть IParser, чтобы каждый класс имел метод .Parse (file).
Следующая задача заключается в сопоставлении строк расширения файлов с классами. Первое, что приходит мне в голову, это Словарь. Ключ будет расширением файла как строкой, и значение будет синтаксическим анализатором для расширения этого типа файла. Перед выполнением любой обработки вы должны заполнить словарь всеми расширениями файлов, которые вы хотите поддерживать.
Некоторые предпосылки для этого хорошо работают: -Вы не имеете большого количества поддерживаемых расширений файлов. -Один экземпляр синтаксического анализатора может использоваться повторно -повторный парсер не особенно дорог; существует минимальная инициализация, выходящая за рамки того, что нужно сделать для нового объекта.
Вопрос довольно общий, есть ли у вас какой-то код, который вы могли бы опубликовать? –
Извините, что не отправлял код, у меня есть код, но это полный беспорядок около 9000 строк кода: s, я собираюсь переписать его. Приложение довольно сложно, но основная концепция - это что-то вроде примера, который я дал. –