CodeSmell - Reforzar conceptos #134
-
Hola,
}
|
Beta Was this translation helpful? Give feedback.
Replies: 7 comments
-
Esta larga, pero me parece bien, mañana te respondo en detalle, pero antes me adelanto con dos cosas:
|
Beta Was this translation helpful? Give feedback.
-
En realidad el code smell es type test, lo de missing polymorphism es como la causa, o sea hiciste una type test porque falta polimorfismo probablemente. Mas allá de eso esto lo evidencias en el uso del objeto, no lo podes ver en la declaración de la clase.
Esto la verdad no entiendo muy bien a lo que apuntas, o sea, los mensajes que entienda son los que implementa de la interfaz + los que hereda + los que uno defina. O sea, eso es lo único que te interesa desde afuera, que mensajes expone (su interfaz) |
Beta Was this translation helpful? Give feedback.
-
No entiendo a que te referís con que usa herencia múltiple, en Java la herencia es simple. |
Beta Was this translation helpful? Give feedback.
-
interface NuevaInterface extends ClasePadre2 , ClasePadre3 {
void metodo1(Documento doc, String cod);
void metodo1(String codSMP);
void metodo1(String area, double d, boolean b);
} No tengo idea porque es interna, habría que ver como se usa.
Si, se llama sobrecarga de métodos en general no soy fan de esa soluciones, ya que suelen a llevar a complejizar el uso, y muchas veces denota una falta de alguna abstracción. Yo no diria que tiene que ver con la declaratividad, que en general esta muy asociada a la idea de ocultar un algoritmo repetible cross dominio. |
Beta Was this translation helpful? Give feedback.
-
Ojo, no es una subclase, esa es la forma de decir que una interfaz cumple el contrato de otras interfaces, o sea, sirve para ampliar el contrato en uno mas grande. Aunque en general se recomienda tener contratos mas chicos. podría llegar a servir en algunos contextos. |
Beta Was this translation helpful? Give feedback.
-
@wormeno Te sirvió la respuesta? |
Beta Was this translation helpful? Give feedback.
-
Gracias Gaston, |
Beta Was this translation helpful? Give feedback.
Gracias Gaston,
Es un código de un sistema en el trabajo que me tocó revisar. Actualmente está funcionando. Yo le saqué los nombre originales, pero la estructura es tal cual como la plateé.
En un principio me costó entenderlo.
Me quedó claro que no existe herencia múltiple. Y que la interface "interna" la usan para extender el contrato.
En general me parece un código bastante feo y poco declarativo.
Pero bueno en el mundo laboral uno se va encontrando con diversas formas de programar.
Gracias por la explicación.