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