style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Interfaz

Pregunta para la Araña:

Supón que en una interfaz se declaran 10 o más métodos.

Si las clases concretas A, B y C se asocian a dicha interfaz, ¿no representa una desventaja el tener que implementar todos esos métodos en cada una de ellas?

Saludos
Ramon Jacobo

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

depende

Si te refieres a la hueva de tener que implementar los 10 métodos de la interfaz en cada una de las clases, pues sí, lo es, ni modo. Una interfaz con 10 métodos seguramente es para algo muy complejo y especializado. Si tienes control de esa interfaz, hay que revisar si está bien diseñada, porque tal vez se puede partir en dos o más, cada una con 5 métodos o menos.

Respuesta simple:

Respuesta simple: Si, si es una desventaja.

Respuesta más elaborada: Hay que considerar las ventajas que eso trae ( si no hay ninguna ventaja, entonces hay algo muy mal ahí ).

Sin embargo, si las ventajas son más que esta desventaja, se tiene una situación ganadora. Hay veces en las que esta es la única manera y el de conseguir lo que necesitamos ( un plugin por ejemplo ) , así que hay que analizar cada caso específico y revisar las alternativas que hay.

Por ejemplo, si las clases A,B, y C implementan la misma interfaz "X" podrían tener un antecesor común AbstractX que tenga una implementación "default" que los otros debieran de sobreescribir si les hace falta ( esto pasa por ejemplo con la clase MouseAdapter )

Hay incluso interfaces con más de 150 métodos que son implementados por muchas compañias no creo que esto haga feliz al que lo codifica pero ciertamente hay sido utilizando millones de veces.

Imagen de Ramon Jacobo

Depende

Hola, gracias por tu respuesta, como siempre muy clara y entendible.. me sirvio mucho para entender mejor esa pregunta.

Saludos

Ramón Jacobo

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">