Clases abstractas e interfaces de mejores prácticas en java.

Así que tienes una interfaz y una clase abstracta que implementa un subconjunto de los métodos en la interfaz. También tienes algunas clases que heredan la clase abstracta y dan implementaciones de los métodos que la clase abstracta no da.

Entonces, ¿cuál es la mejor práctica aquí? Estoy hablando de temas como:

1) ¿Debería la clase abstracta implementar la interfaz o sus clases secundarias? ¿Debería cada clase? Me parece que solo la clase abstracta debería. Por supuesto, todas las clases podrían implementar la interfaz, pero eso parece redundante porque los elementos secundarios del abstracto "heredarán" la interfaz porque extienden la clase abstracta.

2) Dado que la clase abstracta implementa partes de la interfaz, ¿debería también declarar métodos abstractos para los métodos que no implementa? Me parece que esto es correcto, pero en cierto modo parece redundante porque los elementos abstractos necesitarán implementar estos métodos para compilar.

Entonces, ¿cuáles son sus argumentos para la mejor práctica? La pregunta se reduce a: tenemos una interfaz que define lo que queremos que hagan algunas clases, tenemos un subconjunto de los métodos en la interfaz que definen el comportamiento común y tenemos algunas formas diferentes de definir El comportamiento no común. ¿Cuál es la mejor manera de exponer esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta