Сначала мы хотели реализовать шаблон Стратегии с различными реализациями методов в общем интерфейсе. Они будут выбраны во время выполнения на основе пользовательских данных.
Как оказалось, у нас есть абстрактные классы, реализующие 3-5 общих методов, и только один метод остался для различной реализации, то есть Стратегия.
Обновление: Под многими абстрактными классами я имею в виду 6 различных функций высокого уровня, то есть 6 пакетов, и у каждого есть свой интерфейс + AbstractImpl + (серия Actual Impl).
Это плохой дизайн в любом случае?
Любые негативные мнения с точки зрения последующей расширяемости - я готовлюсь к рассмотрению кода / дизайна с пожилыми людьми.