Inicialmente, queríamos implementar un patrón de estrategia con diferentes implementaciones de los métodos en una interfaz común. Estos se recogerán en tiempo de ejecución en función de las entradas del usuario.
Como resultado, tenemos clases abstractas que implementan 3 - 5 métodos comunes y solo queda un método para una implementación variable, es decir, la Estrategia.
Actualización: por muchas clases abstractas quiero decir que hay 6 funcionalidades diferentes de alto nivel, es decir, 6 paquetes, y cada uno tiene su interfaz + AbstractImpl + (serie de Impl real).
¿Es este un mal diseño de alguna manera?
Cualquier opinión negativa en términos de extensibilidad posterior: me estoy preparando para una revisión de código / diseño con personas mayores.
fuente