через два мгновения тебе надо в одном кейсе добавить параметр и ты уже редактируешь базовый класс и правишь всех остальных его потомков
и получаешь перегруженный базовый класс
Пример:
У меня было "pam", разновидностей которых было до 30 штук.(называлось все подобное, но разное поведение и лошика). В этих целях была создана такая структура:
1) базовый интрфейс;
2) базовый класс под инфтрейс + релаизация методов;
3) отдельный сервис под каждый "pam", который если ничего не переопределял для себя, то просто наследовался от базового класса.
Впринципе - в данном рпимере никакой сложности или запутаности небыло