Examen Final - 75.07. Algoritmos y Programación III

Cátedra: Fontela Fecha: 4ta Oportunidad - (1er Cuatrimestre 2007
Día: 03/08/2007

Esta página está incompleta; podés ayudar completando el material.

Enunciado

:materias:75:07:final_fontela.jpeg

public void quitarPropiedad(Propiedad p){
     if(propiedades == null)
          return;
     //búsqueda de p en propiedades
     for(pos = 0; pos < propiedades.lenght; pos++){
          if(propiedades[pos] == p)
               break;
          if(pos == propiedades.lenght-1)
               pos = -1;
     }
     if(pos > -1)
          propiedades[pos] = null;
}
 
public void imprimirDatos(){
     System.out.println("Inmobiliaria: " + this.getNombre());
     if (propiedades != null)
         for( int i=0; i < cantidadPropiedades; i++)
               if(propiedades[i] != null) propiedades[i].imprimirDatos();
 
}
 
public double beneficioEsperadoCartera(){
     double beneficio = 0;
     double comisionesCobradas = (this.comisionClienteCompra + this.comisionClienteVenta) / 100.0;
     for( int i=0; i < cantidadPropiedades; i++)
         if(propiedades[i] != null){
               int precio = propiedades[i].getPrecio();
               if(!propiedades[i].getVendido()){
                     beneficio += precio * comisionesCobradas - propiedades[i].comisionVendedor();
         }
     return beneficio;
}
 

A continuación:

  1. Se le pide evitar los “if (propiedades[i] 1= null)”, mediante la implementación del patrón Null Object. Este patrón consiste en crear una clase descendiente de la clase que corresponda para manejar el caso de las referencias nulas, de modo que el polimorfismo resuelva todo sin necesidad de sentencias “if”. Tómese un tiempo para analizarlo.
  2. Especifique los pasos que seguiría para realizar la refactorización solicitada, sin omitir ninguno por pequeño que sea.
  3. Muestre la clase que agregó, completa, y cómo quedarían la últimas versiones de los métodos de más arriba.
  4. La clase que agregó, ¿cuántas instancias necesita tener?
materias/75/07/final_4_20070803_1.txt · Última modificación: 2007/08/25 16:15 por lalan
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki