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