Trabajo con clases de Negocio

26/09/2008 - 17:04 por Guillermo Peralta | Informe spam
Hola que tal,
Les planteo una consulta acerca de cual es la manera que uds creen conviente
para realizar lo siguiente utilizando una metodologia en Capas y Orientada a
Objetos.

El planteo es tener una clase Cliente y un clase Domicilios como propiedad
de la primera que realizan el mapeo de la Base de datos a un modelo OO

Cliente

IdCliente
Nombre
Domicilios


Domicilios
Calle
Numero


Hasta ahi todo bien. Ahora necesito tener una manera de cargar tanto los
datos del cliente como los de sus domicilios, eso lo implementaria a traves
de una clase de negocio llamada NegocioClientes


El 1º planteo es tener un metodo static dentro de NegocioClientes que
provea metodos de servicios para llevar a cabo las distintas acciones

Entidades.Clientes EntidadCliente = new Entidades.Cliente ( 123 );
//inicializo con el Id del Cliente

NegocioClientes.Fill (EntidadCliente ); //cargo los datos basicos del
Cliente
NegocioClientes.FillDomicilios (EntidadCliente); //cargo los domicilios
del cliente


//accedo a los datos del cliente de la siguiente manera
string Nombre = EntidadCliente.Nombre;

string Calle = EntidadCliente.Domicilios[0].Calle;



El 2º planteo es tener dentro de la clase de NegocioClientes un objeto
EntidadClientes como propiedad y disponer dentro de Negocio metodos para la
carga de estos datos:

NegocioClientes Cliente = new NegocioClientes ( 123); //inicializo con
el Id del Cliente

Cliente.Load (); //cargo los datos del cliente

Cliente.LoadDomicilios (); //cargo los domicilios

//accedo a los datos del cliente de la siguiente manera

string Nombre = Cliente.EntidadCliente.Nombre;

string Calle = Cliente.EntidadCliente.Domicilios[0].Calle;



Espero que se entiendan los distintos planteos, funcionalmente no encuentro
mayores diferencias entre uno y otro, y es por eso que me encuentro un poco
confundido en que metodología seguir.


Saludos
Guillermo Peralta
 

Leer las respuestas

#1 Alberto Poblacion
26/09/2008 - 17:34 | Informe spam
"Guillermo Peralta" @SPAM.com.ar> wrote in message
news:uQsuek%
Espero que se entiendan los distintos planteos, funcionalmente no


encuentro
mayores diferencias entre uno y otro, y es por eso que me encuentro un
poco confundido en que metodología seguir.



No eres el único que se encuentra confundido al enconotrarse con este
tipo de decisiones. Te acabas de topar con lo que suele denominarse el
"desacoplo de impedancia" entre el modelo relacional y el modelo orientado a
objetos. La información se representa conceptualmente de forma distinta en
ambos modelos, por lo que no es evidente la mejor forma de hacer
corresponder los datos almacenados en base de datos con una estructura de
objetos en memoria. Las herramientas ORM (Object-Relational Mapping)
intentan resolver de manera semiautomática este tipo de encapsulación de
datos, así como su recuperación y almacenamiento en base de datos. Cada una
sigue sus propios criterios y tiene su propio modelo, sin que haya uno que
pueda decirse de forma inequívoca que "es el mejor de todos". Sobre estos
temas se han vertido ríos de tinta; si tienes interés, con una símple
búsqueda en Internet encontrarás docenas de documentos con toda clase de
información al respecto.

Preguntas similares