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

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Guillermo Peralta
26/09/2008 - 19:30 | Informe spam
Muchas Gracias Alberto por tu comentario, es cierto, lo que sucede es que a
veces encontramos distintas alternativas para realizar determinada accion y
tememos realizar "la forma incorrecta".

Seguiré investigando y decidire la mejor forma para mi proyecto que no
necesariamente puede coincidir con la mejor forma para otro desarrollados

Saludos
Guillermo Peralta

"Alberto Poblacion"
escribió en el mensaje de noticias:OS9qU1#
"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.

Respuesta Responder a este mensaje
#3 Alfredo Novoa
27/09/2008 - 14:21 | Informe spam
Hola Alberto,

El Fri, 26 Sep 2008 17:34:04 +0200, Alberto Poblacion escribió:

No eres el único que se encuentra confundido al enconotrarse con este
tipo de decisiones.



Más bien hay que estar muy confundido para llegar a plantearse ese 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.



Más bien lo que está intentando hacer es gestionar los datos sin aprovechar
la potencia de un SGBD moderno y utilizando el arcaico modelo de red.

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.



Cuando dices ambos modelos te refieres al modelo relacional y al modelo de
red (siendo el modelo jerarquico un subtipo del modelo de red), por que
otros modelos de datos no hay.

Lo que es evidente es que no hay que transformar un diseño relacional en
uno de red.

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.



Es decir que facilitan un poco el hacer barbaridades.

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".



Es decir que no está claro cual es el menos malo por que todos lo son
mucho.

Sobre estos
temas se han vertido ríos de tinta;



Y la inmensa mayoría de lo que se ha escrito son tonterías.

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.



Si buscas el término ORM casi todo lo que te vas a encontrar es
desinformación.

Los que entienden de estas cosas son los expertos en gestión de datos, y
desgraciadamente muy muy pocos programadores.

Lo mejor en estos casos es repasar los conceptos sobre teoría de
tratamiento de datos. Hay libros serios que tratan bastante bien estos
temas como:

http://www.casadellibro.com/libro-i...0000793527
http://oreilly.com/catalog/9780596100124/

Saludos
Respuesta Responder a este mensaje
#4 Carlos M. Calvelo
27/09/2008 - 20:51 | Informe spam
Hola Alfredo,

On 27 sep, 14:21, Alfredo Novoa wrote:

Si buscas el término ORM casi todo lo que te vas a encontrar es
desinformación.




Bueno... podría uno encontrase con Object Role Modeling (ORM / NIAM).
Tendría sentido pararse con ese 'ORM' y no perder el tiempo con
'los demás'.

Saludos,
Carlos
Respuesta Responder a este mensaje
#5 Alfredo Novoa
27/09/2008 - 21:38 | Informe spam
Hola Carlos,

El Sat, 27 Sep 2008 11:51:01 -0700 (PDT), Carlos M. Calvelo escribió:

Bueno... podría uno encontrase con Object Role Modeling (ORM / NIAM).
Tendría sentido pararse con ese 'ORM' y no perder el tiempo con
'los demás'.



Ah si, me olvidaba del Object Role Modeling. Eso si que es una cosa seria.
Aunque yo tampoco lo encuentro muy útil.



Saludos
Alfredo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida