Привет,
Насчёт архитектуры сложно, посмотрите паттерны, рекомендую сайт
https://refactoring.guru/ru.
Дублированного кода не должно быть. Вынести можно несколькими способами, после ознакомления с паттернами, подберёте наиболее вам подходящий.
Магические текстовки - плохая практика. Замените хотя бы на константы, но лучше работайте с энумами.
Насчёт code style так же верно заметили. У вас один метод именуется с большой буквы, в другом классе метод с маленькой буквы - это бросается в глаза и оставляет отпечаток, что сделано "тяп-ляп", лабораторная работа номер два.
Есть спецификации языка, в которых описывается, как правильно внедрять новые фишки. На основе этого (или через боль поиска багов) внутри компаний формируются свои code style документы. Могу скинуть вам на почту свой документ, это очень полезная вещь