Implementación OOP

18/06/2004 - 12:12 por Miquel | Informe spam
Hola a todos,

Mi duda es referente al diseño de las clases.
Supongamos que tenemos una clase CLIENTE, que maneja todas sus propiedades
(código, nombre, cif...) además de controlar una colección de objetos
CONTACTOS de ese cliente.
Al crear un objeto CLIENTE, éste recupera todos sus datos de la bbdd, además
de crear tantos objetos CONTACTO como contactos tenga este cliente.
Esto funciona bien para un formulario que me muestre la información del
cliente, así como una grid que contenga a sus contactos.

Pero, si desde un formulario facturas (p. ej. ) necesito mostrar sólo
algunos de los datos de un cliente y para ello creo un objeto CLIENTE, este
se va a crear con todo. O sea, va a leer toda la información del cliente así
como toda la información de sus contactos. La qual cosa me parece absurda
por la pérdida de tiempo accediendo a unos datos que no voy a necesitar.

Es en casos como este que me pierdo a la hora de diseñar las clases.
Albaranes (cabecera y lineas), Facturas (Caberas y lineas)
Porqué diablos el objeto FACTURA me va a tener que cargar todas sus lineas
si en un momento dado sólo quiero obtener de él el importe total de la
factura????

Me gustaria si alguien puede aportar ideas de como diseña clases para
manejar objetos de tipos similares a los expuestos.

Muchas gracias,
Miquel
 

Leer las respuestas

#1 José Ramón
18/06/2004 - 12:58 | Informe spam
Todo lo que estás diciendo está bien, pero las clases
no te mandan a ti, tu las mandas a ellas y todo depende
de como las crees. Yo uso clases similares a las que tu comentas;
para el caso de las facturas tengo varias funciones, una para cargar la
cabecera, otra para cargar las lineas y otra para cargar la factura
completa. En el caso de los clientes se puede hacer una funcion
para que solo te recupere unos campos concretos (nombre, DNI, pej)

También puedes sobrecargar los constructores para que te creen las clases
con
los datos que tu requieras... hay muchas posibilidades

Pero en todo caso no te agobies y piensa en lo que quieres que te brinde
una clase antes de diseñarla y hazlo en consecuencia.

Saludos.

Preguntas similares