Есть большой класс, можно ли его разделить на много мелких

177
03 ноября 2018, 09:30

Имеется проект в один класс, где есть абсолютно все, что мне было нужно до этого момента, но сейчас нужно расширить функционал в сторону поддержки других осей и исправления косяка с winxp. Пока не понял точно в чем косяк, но этот рефакторинг должен облегчить внедрение заплатки на этот косяк да и само расширение функционала, которое сейчас невозможно ибо это будет пирамида из фекалий.

Размер класса где-то 460 строк, вместе с документацией. Есть ли резон разделить на много небольших классов, а именно константы затолкать в отдельный enum.

Константы отвечают за путь к файлу и являются строками так, что по идее они и так константы, я разве что для проформы оформил, как константы и вынес в общий scope класса.

Остальные методы по назначению рассовать в разные классы и сделать разные методы под каждую платформу (windows, linux, mac), как для самого функционала, так и для запуска через main(), то есть например метод startWin () или startMac () или как-то так.

А в main() оставить только проверку оси через System.getPropierty("os.name"); (вроде бы так) и на основе этого, через if-else или switch или через перезагрузку метода start сделать метод main () чистым и простеньким и изолировать от функционала.

Это просто небольшая утилита, которую разносит как дирижабль и боюсь 460 строк это еще только начало.

У меня штук 10 методов записывают в файл и это только пока, в остальных операционках будет так же, вопрос вот в чем, лучше всего оставить ибо работает или же переделать метод, чтобы он возвращал строку потом лепить через конкатенацию или StringBuilder или еще через что и записывать 1 раз, к слову читает тоже раз 9-10 с файлов?

Технически я бы лучше оставил, как есть в плане функционала иначе будет такая каша, что там не только топор, но еще и старые покрышки, носок, противогаз и целый атомный ледокол будет. Если обобщать, то вот 2 основных момента:

  1. Лучше ли поделить программу на небольшие классы и enum'ы (для других осей придется клепать еще enum'ы потому что пути различаются), что значительно упростит ее переваривание и возможности к расширению.

  2. нужно ли переделывать функционал в угоду уменьшению количества операций чтения-записи, если уже вроде как работает. Прошу сильно не пинать, это мой второй вопрос здесь и мой первый проект в принципе причем самостоятельный.

READ ALSO
Android Studio, не работает get запрос

Android Studio, не работает get запрос

Делаю практическое задание для универа на Android Studio, мне нужно делать get запросы к странице, чтобы получать данные с БД, но ни один из найденных...

182
Не могу найти правильный подход к изучению Java и разработки под Android

Не могу найти правильный подход к изучению Java и разработки под Android

я начинающий программист, изучаю Java и хочу изучать разработку под AndroidПроблема в том, что я не могу найти правильный подход к изучению, и меня...

169
Как обновить таблицу jsp java foreach ajax

Как обновить таблицу jsp java foreach ajax

подскажите пожалуйста Как обновить c: forEach с помощью Ajax

217
пустой Reqest в Java Servlet, проблемы с GSON

пустой Reqest в Java Servlet, проблемы с GSON

Парни привет! Есть вот такой код на тачке:

213