Tengo un grupo de clases que extienden una sola clase abstracta. Un subconjunto de estas clases necesita una implementación idéntica de uno de los métodos, otro subconjunto de las clases necesita otra implementación del método, y un tercer subconjunto requiere otro. En total hay alrededor de diez clases secundarias, pero solo tres posibles implementaciones de uno de los métodos. (Hay muchos otros métodos que implementan las clases que no tienen nada en común.)Cómo hacer esto sin herencia múltiple
Estoy tratando de encontrar la mejor manera de lograr esto. Creo que lo que habría hecho en C++ es herencia múltiple: crear tres clases que implementen solo este método, luego haga que los niños hereden de la apropiada de esas tres clases.
¿Existe una mejor práctica para hacer esto en Java?
Estaba considerando una capa intermedia de tres clases abstractas, entre la clase abstracta principal y los niños. Cada uno de los tres hereda de la clase abstracta principal e implementa el método en cuestión. Entonces los hijos heredan de estos tres. Pero lo que no me gusta de eso es ¿qué ocurre si otro método viene con un comportamiento similar de "agrupamiento" y no se corresponde con las tres clases de "nivel medio"? Eso se pondría feo
¿Tiene algo de sentido? Estoy escribiendo aprisa ...
EDIT: Entonces, 24 horas después de hacer mi pregunta, he recibido aproximadamente media docena de patrones para investigar. Todavía no estoy seguro de que sean nombres de patrones de diseño oficiales. Pero voy a analizar cada uno y luego informaré (y elegiré una respuesta como correcta). Los zuecos sugeridas hasta ahora:
* Delegation
* Bridge
* Strategy
* Composition
* Decorator (if I was choosing on name alone, I choose this one)
que también tienen que añadir que el método que se está implementando necesita tener acceso a casi todos los miembros privados de la clase. Entonces eso tendrá un gran factor en mi elección.
Gracias por el enlace voy a leer y volver con mis preguntas. ¿Todavía estarás escuchando? Soy nuevo aqui. ¿Los comentarios publicados en las respuestas provocan que se envíe algún tipo de alerta al que responde? –
Los comentarios a las respuestas activan una pequeña notificación, pero si tiene preguntas posteriores, es más conveniente que el sitio web las publique como nuevas (mientras busca los duplicados) en lugar de solicitar respuestas de seguimiento en la anterior. Meta-discussion como este tiene [su propio sitio secundario] (http://meta.stackoverflow.com/) y está mal visto aquí. – Barend