Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cuando usar objetos y cuando no?

Estas en el tema de Cuando usar objetos y cuando no? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buen dia a todos. Me hefijado, que como desarrolladores apasionados siempre estamos en búsqueda de nuevas técnicas, de nuevas formas, maneras, etc. Y cuando nos ...
  #1 (permalink)  
Antiguo 01/12/2008, 21:06
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Cuando usar objetos y cuando no?

Buen dia a todos.

Me hefijado, que como desarrolladores apasionados siempre estamos en búsqueda de nuevas técnicas, de nuevas formas, maneras, etc. Y cuando nos topamos con algo nuevo creemos que SIEMPRE debemos usarlo.

Este es mi caso con los objetos. Por necesidad laboral, he bajado aplicaciones prefabricadas como el phpfreechat; y ahi alcanzo a notar que programar con objetos y separar el codigo del diseño es sumamente ventajoso.

Pero no alcanzo a distinguir donde NO deberia usarlos; o abusar de ellos. Y para ello pongo el siguiente ejemplo a fin de que me orienten sobre la conveniencia de usar objetos o no:

Estoy haciendo un pequeño sistema para mi negocio, donde daré de alta clientes y proveedores, por cada cliente puedo generar dos tipos de usuarios, ademas de poder generar tantos proyetcos por cliente como sean necesarios. Además por cada cliente puedo generar tantas ventas como requiera, lo que a su vez supone el alta de cuentas por cobrar.

Para con los proveedores es mas sencillo, solo los doy de alta y genero compras y cuentas por pagar.


El punto es que de alguna manera, la unica accion repetitiva es el registro, la edicion y la eliminacion de registros, el resto son tareas propias de las reglas de negocio.

Yo ya he generado una clase que cumple con esas tareas repetitivas, y no le veria caso generar una clase que tenga metodos como: agregarCliente(), eliminarCliente(), agregarUsuario(), eliminarUsuario().

Sin embargo, tambien me queda la duda de que tanto deberia mezclar el diseño (html) con las reglas de negocio (php), es decir que tanto deberia mezclar codigo php con html.

Estoy un poco confundido con respecto a que hacer aqui, ojalá alguien pueda orientarme.


Gracias
  #2 (permalink)  
Antiguo 02/12/2008, 02:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Cuando usar objetos y cuando no?

La unica razon logica para no usar objetos es que no sea la herramienta adecuada para el trabajo

A veces una estructura de objetos es sobrecargar el diseño, a veces con objetos no puedes alcanzar los requisitos de la aplicacion (velocidad, memoria).

En tu caso si lo haria con objetos, las reglas de negocio tambien son objetos. Los objetos no son solo para separar presentacion de negocio, tambien son una herramienta para obtener un mejor diseño y un mantenimiento mas facil.
Cita:
Sin embargo, tambien me queda la duda de que tanto deberia mezclar el diseño (html) con las reglas de negocio (php), es decir que tanto deberia mezclar codigo php con html.
Hay codigo PHP que es de presentacion, que debe mezclarse con el HTML.
  #3 (permalink)  
Antiguo 02/12/2008, 07:04
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Cuando usar objetos y cuando no?

Cita:
Me hefijado, que como desarrolladores apasionados siempre estamos en búsqueda de nuevas técnicas, de nuevas formas, maneras, etc. Y cuando nos topamos con algo nuevo creemos que SIEMPRE debemos usarlo.
Si hablamos de POO es algo antiguo, mucho, y no tiene nada de nuevo. Como paradigma, no es algo opcional que se use parcialmente, o lo usas o no lo usas, de lo contrario es un híbrido y no obtienes beneficios esperados.

Cita:
Pero no alcanzo a distinguir donde NO deberia usarlos; o abusar de ellos. Y para ello pongo el siguiente ejemplo a fin de que me orienten sobre la conveniencia de usar objetos o no:
Deberías usar el paradigma al 100%, no "más o menos". El problema es luego si tu diseño tiene "exceso de abstracciones" ("demasiados objetos") para resolver un problema simple.

Cita:
El punto es que de alguna manera, la unica accion repetitiva es el registro, la edicion y la eliminacion de registros, el resto son tareas propias de las reglas de negocio.
Depende cómo hagas el diseño de tu solución. Deberías tener claramente entidades distintas (Clientes, Usuarios, Proveedores, etc) y entre ellas tener reuso de las cosas comunes (Persistencia, por ejemplo). Una vez que tienes resueltos los problemas particulares con entidades bien definidas, luego es llamarlas y pedirles que hagan lo que tienen que hacer sin entrar en detalles ("principio de ocultación") y donde puedes hacerlas interactuar con otras entidades.


Cita:
Yo ya he generado una clase que cumple con esas tareas repetitivas, y no le veria caso generar una clase que tenga metodos como: agregarCliente(), eliminarCliente(), agregarUsuario(), eliminarUsuario().
¿Y cómo haces para diferenciar si es uno u otro a la hora de persistir la información?

Cita:
Sin embargo, tambien me queda la duda de que tanto deberia mezclar el diseño (html) con las reglas de negocio (php), es decir que tanto deberia mezclar codigo php con html.
Código HTML con PHP vas a tener que mezclar, no te queda otra, porque HTML no anda dinámicamente solo

Lo que tienes que hacer es dividir tu sistema en "3 capas" y en cada una de ellas resuelves un tema solo: presentación, dominio y persistencia (y en las tres usarás PHP, pero solo en la primera HTML).

Espero haber aportado algo de claridad.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #4 (permalink)  
Antiguo 02/12/2008, 16:18
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Cuando usar objetos y cuando no?

Gracias enriqueplace y Darkj.

Su aporte me resulta de gran ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:13.