Почему я считаю разделение на 2 класса - нормальным
По той причине, что и собственно загрузка данных, и последующая обработка, очевидно, не тривиальные процессы (раз вообще возник вопрос о необходимости разделения). Т.е. наверняка много кода (много методов) будет как для загрузки, так и для обработки. И если это все пихать в один RunBase, то получим безумное количество методов в одном классе с которыми потом будет очень тяжело разбираться (есть печальный опыт
)
Поэтому просто формальное разделение методов по разным классам - уже хорошо. Даже если это будет банальный вызов одного из другого без каких-либо пакетных заданий
1. RunBase - диалог с пользователем и "диспетчер" для вызова других классов
2. Класс - загрузчик данных
3. Класс - обработчик данных
Ну, а получив в явном виде разделение процессов по разным классам позже можно будет подумать о запуске этих процессов по отдельности. В разных пакетных заданиях, например...