2008/4/24 Pablo Martín Viva <[EMAIL PROTECTED]>:
> En cuanto a la parte de validar no hablaba para suplantar un framework de
> validación porque eso es imposible, de hacerlo en la clase misma, no se si
> imposible, tal vez exagere, pero es muy antinatural, antipractico y termina
> no sirviendo, a lo que me referia es por ejemplo si yo tengo no se algo por
> el siguiente estilo:
>
> En ese caso estoy haciendo una validación de que no me pasen un valor
> negativo de copias ya que un libro no puede tener una cantidad de cpias

Bueno, aca tenes otro problema, estas usando un lenguaje que no tiene
tipos unsingned :), si tuvieras, no necesitas validar.

> negativas, para lo que quiero modelar, entonces en esos casos tomo un valor
> por defecto, ademas esas validaciones no las tengo que repetir en todos
> lados, por ejemplo cada vez que cambio el valor de mi atributo copia, ya sea
> en los multiples constructores que mi clase pueda tener, como en los

Con properties tenes lo mismo, pero mas lindo (C#, para que se vea
casi igual de feo que tu ejemplo :) :

public class Libro {
   private int copias;

   public int Copias {
      set {
          if (value < 0) {
             this.copias = 0;
          } else {
             this.copias = value
          }
      }
      get { this.copias }
   }

   public Libro(int copias) {
         Copias = copias;
  }
}

libro = new Libro(25);
libro.Copias++;   (esto no lo podes hacer con setters :P)

> diferentes metodos que usen mi atributo, yo me cercioro de que la cantidad
> de copias nunca va a ser negativa, esto es un ejemplo simple. Otro tipo de
> validaciones pueden ser para hacer lazy loading de atributos...

En ambos casos, pero nota que tngo mas flexibilidad (tengo el ++, por
decir algo) y naturalidad (se lee mas lindo "libros.copias" que
"libros.getCopias" al usar despues los atributos).

> Entonces desde cualquier lugar que use a la lista de capitulos dentro de mi
> clase me olvido si originalmente estaba en null o no, y con eso me evito
> montones de NullPointerExceptions, son ejemplos medio tontos estos, y hasta
> casi no justifican el uso de los getters y setters pero bueno tomando esto
> como base se pueden hacer cosas mas complejas.

Lo mismo con properties.

-- 
--
¡Falta Uno! - http://www.falta-uno.com.ar/
Ricardo Markiewicz

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a