Foros del Web » Programando para Internet » PHP »

Conceptos de OOP y patrones de diseño

Estas en el tema de Conceptos de OOP y patrones de diseño en el foro de PHP en Foros del Web. Al diseñar en MVC en la capa Vista utilizo DAOs y VOs. Tengo tablas que son solamente de consultas y otras donde se insertan registros ...
  #1 (permalink)  
Antiguo 29/04/2021, 23:18
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 599
Antigüedad: 12 años
Puntos: 7
Pregunta Conceptos de OOP y patrones de diseño

Al diseñar en MVC en la capa Vista utilizo DAOs y VOs.
Tengo tablas que son solamente de consultas y otras donde se insertan registros o actualizan datos.
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.
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.
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 30/04/2021, 08:38
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 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
  #3 (permalink)  
Antiguo 01/05/2021, 23:04
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 599
Antigüedad: 12 años
Puntos: 7
Respuesta: Conceptos de OOP y patrones de diseño

Cita:
Iniciado por tuadmin Ver Mensaje
el uso teorico d ( ... ) equipo de programacion
Yo utilizo los VO para transportar los valores de las propiedades para todos los métodos, insertar, modificar, eliminar, listar, buscar, etc. y eso significa que desde el controlador tengo que hacer setters a los valores que envío al método de los DAO.
Significa que está mal ?
Según comentas el uso de setters y getters es más una buena práctica que permite ordenar el código y eso significa que se aplica a todo. O puedo utilizar setters y getters para algunas cosas y variables para otras??
__________________
Todos somos iguales. NO! a la violencia de género.



La zona horaria es GMT -6. Ahora son las 23:28.