Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/04/2021, 08:38
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Conceptos de OOP y patrones de diseño

Cita:
Iniciado por bandolera Ver Mensaje
1) Cuál es el criterio para crear los Value Objects, yo siempre he trabajado con VO según la salida que se necesita y no necesariamente tiene la estructura de la o las tablas.
el uso teorico de VO es siempre distinta al uso practico, ya que cada proyecto sera siempre diferente. y las implementaciones dependera de los objectivos que se quieran alcanzar, por ejemplo en PHP algunos suelen sacrificar el estandar de los Patrones de diseño, por el rendimiento generando código ilegible pero muy optimizado.

aunque lo correcto es que tus clases VO tienen que tener las propiedades de tu tabla, y los campos que no estan en tu tabla deberian ser metodos tipo Getters.

Cita:
Iniciado por bandolera Ver Mensaje
2) Es una buena práctica utilizar setters y getters en los VOs?
He leído que sugieren que los campos que no deben ser modificados no deben tener setters, pero en el caso de utilizar un formulario de actualización, la captura del valor que viene del formulario se hace con un setter. Significa que la actualización se debe hacer directamente hacia el campo ?
Pregunto porque no encuentro teoría al respecto.
la informacion que buscas debes hacer en ingles, en idioma español, la informacion pruebas , conceptos, sera muy escaso sobre todo si te enfoncas en un lenguaje.

pero personalmente, los setters solo los uso cuando el dato a ser ingresado por el usuario debe ser validado

si tengo un
Código PHP:
class usuario{
   private 
$edad;
   public 
$comentario;
   public function 
__get($name){
       return 
$this->{$name}
   }
   public function 
setEdad($numero){
      
$edad intval($numero);
      if(
$edad<|| $edad >150){
       Throw new 
Exception("Edad invalida ");
      }
      return 
$this;
   }
   

en ese ejemplo, validar la edad puede ser importante, ya que se busca un numero, pero un COmentario, no necesita ser validado, podria ,null .
contener, texto numero, flotantes, etc,

por lo que personalmente, no me gusta obligar el comportamiento innecesario de mis propiedades. por que agregarle a todos su setter respectivo seria un desperdicio de recursos, PERO si es un clase compartida en un proyecto de varios programadores, o si participo temporalmente en uno, los realizo, es como dejar algo Estandar, como se dicta en las normas de patrones de diseño, aunque eso sacrifique rendimiento. ya que tiene que ser algo entendible para los futuros encargados o equipo de programacion
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9