Java - Polimorfismo mal diseñado

 
Vista:
sin imagen de perfil

Polimorfismo mal diseñado

Publicado por Susana (2 intervenciones) el 07/10/2013 08:09:00
Hola programadores de Java, necesito vuestra ayuda
Tengo el siguiente codigo, que esta mal diseñado y codificado, necesito diseñar la clase operador para que ante todo tenga un buen diseño

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Operando {
     private final Object[] operandos;
     public Operando() {
                   this.operandos = new Object[4];
                   this.operandos[0] = new Suma(1, 1);
                   this.operandos[1] = new Resta(2, 5);
                   this.operandos[2] = new Resta(3, 1);
                   this.operandos[3] = new Suma(1, 1);
         }
// MAL DISEÑADO... MAL CODIFICADO
      public int total() {
          int result = 0;
              for (Object operando : this.operandos) {
                     if (operando.getClass().getName().equals("Suma")) {
                                  result += ((Suma) operando).sumar();
                         } else if (operando.getClass().getName().equals("Resta")) {
                                  result += ((Resta) operando).restar();
                          }
                  }
               return result;
     }
}

Mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Polimorfismo mal diseñado

Publicado por UnoPorAhi (128 intervenciones) el 07/10/2013 09:25:15
Buenas,

Operando deberia ser una interfaz con un metodo operar()
Suma, Resta, etc deberan implementar dicha interfaz y dentro de ese metodo incluiran su logica especifica.


Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Polimorfismo mal diseñado

Publicado por Susana (2 intervenciones) el 07/10/2013 10:56:49
Gracias, la teoria mas o menos la se, lo que les pido es como se escribiria ese codigo que es lo que me cuesta, ya que estoy empezando con el java????

Un pelin patosilla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar