Programacion Orientada al Objeto

17/08/2004 - 22:00 por knito | Informe spam
Hola Listeros.

Estoy empesando recien en C# y me sería de mucha utilidad si alguien me
pudiera dar una mano con el tema de POO. estoy modelando una pequeña
aplicación que en términos simples maneje los datos de, por ejemplo, paises,
ciudades, comunas o barrios, pero vistos como objetos para utilizar los
conceptos de herencia.

Necesito diseñar un modelo orientado a objetos donde éstos en su conjunto
compongan un sistema en ASP.NET.

Les pido ayuda, llevo 1 año y medio en VB.Net pero no había explorado las
potencialidades de éste tipo de programación.

Gracias de antemano.

Knito
Chile.

Preguntas similare

Leer las respuestas

#6 Jose Luis Manners
18/08/2004 - 16:18 | Informe spam
Hola Kinito,

Creo que antes de comenzar tu proyecto deberias tratar de adquirir algunos
conocimientos básicos de POO y programación por capas (n-tier). Puedes
encontrar mucha información sobre estos temas en MSDN, El Guille, etc.
Tambien te sugiero leer sobre patrones de diseño (Design Patterns).

Sin entrar en muchos detalles, yo hice un módelo de objetos bastante BASICO
basado en lo que expones. No incluí las propiedades como Nombre, Ubicación,
etc. porque lo único que te quiero mostrar son los objetos y la relación
entre ellos :

Continente
PaisCollection
Pais
CiudadCollection
Ciudad
BarrioCollection
Barrio

Bueno primero tienes un objeto Continente el cual posee un objeto tipo
colección PaisCollection. PaisCollection contiene una lista de todos los
objetos tipo Pais para determinado Continente. Piensa en PaisCollection
como si fuera un ArrayList de objetos tipo Pais. Cada objeto Pais a su vez
contiene una colección CiudadCollection la cual es una lista de objetos
Ciudad que pertenecen a cada Pais. Y asi sucesivamente con los objetos tipo
Barrio. Inclusive puedes tener un objeto tipo colección llamado
ContinenteCollection el cual sería una lista de todos los objetos
Continente. Sobre herencia lo que puedes hacer es teneer un objeto llamado
algo así como LugarGeografico el cual contega las cosas comunes como Nombre,
Ubicación, Agregar(), etc. y entonces todos los objetos individales (no las
colecciones) heredarían estas propiedades y métodos del objeto
LugarGeografico .

Ahora bien, en términos de base de datos yo creo que cada objeto individual
merecen estar en una tabla en la base de datos. Asi que tendrias una tabla
aparte para Continentes, Paises, Ciudades, y Barrios las cuales deben estar
relacionadas en la forma en que estan relacionados los objetos (pero no
necesariamente). Para esto te sugiero leer sobre relaciones de padre/hijo
en bases de datos.

Para crear los objetos desde las bases de datos te sugiero que leas bastante
sobre capas y patrones de diseño. La idea es que cuando en tu programa
quieras construir el objeto ContinenteCollection todas las dependecias sean
construidas a manera de cascada sin tu programa saber los detalles de como
se construyen. Los objetos serían construidos consultando la base de datos
a través (pero no necesariamente) de una capa de accesso a datos (Data
Access Layer).

Bueno espero no te haya confundido más en lugar de ayudarte. Te sugiero
nuevamente que leas bastante antes de comenzar.

Saludos,

Jose Luis Manners, MCP

"Encuentra felicidad en tu trabajo o nunca serás feliz."
-Kung-Fu-Tsu (Confucio)

"knito" <knito~@~chile~.~com> wrote in message
news:
Alfredo, tal vez no expliqué bien la finalidad, pero lo que necesito es
crear objetos que me permitan manejar la información almacenada en alguna
parte, pero visto como una unidad dependiente.

Por ejemplo:

Objeto Continente
Atributos: Nombre, Ubicación Geográfica, Países
Métodos: Agregar País, Eliminar País, Listar Países

Objeto País.
Atributos: Nombre, Ubicacion Geográfica
Métodos: Agregar Ciudad, Eliminar Ciudad, Listar Ciudades

Objeto Ciudad
Atributos: Nombre, Ubicacion Geográfica
Métodos: Agregar Barrio, Eliminar Barrio, Listar Barrios

Objeto Barrio
Atributos: Nombre, Ubicacion Geográfica

En fin, algo como ésto es lo que necesito hacer.

Gracias.


"Alfredo Novoa" escribió en el mensaje
news:
> On Tue, 17 Aug 2004 16:00:45 -0400, "knito" <knito~@~chile~.~com>
> wrote:
>
> >Estoy empesando recien en C# y me sería de mucha utilidad si alguien me
> >pudiera dar una mano con el tema de POO. estoy modelando una pequeña
> >aplicación que en términos simples maneje los datos de, por ejemplo,
paises,
> >ciudades, comunas o barrios, pero vistos como objetos para utilizar los
> >conceptos de herencia.
>
> Pues lo más importante es saber que la Programación Orientada al
> Objeto no es para manejar datos. Para manejar datos se utilizan los
> Sistemas de Gestión de Bases de Datos y el Modelo Relacional.
>
>
> Saludos
>


Respuesta Responder a este mensaje
#7 Alfredo Novoa
18/08/2004 - 16:42 | Informe spam
On Wed, 18 Aug 2004 09:26:50 -0300, "María"
wrote:

Yo también recién empiezo y tengo la misma duda que Alfredo.



Pues bienvenida al caos :)

Los datos los
manejo con Sistemas de Gestión de Bases de Datos y Modelo Relacional, pero
cómo hago el vínculo entre c# y ese modelo relacional?



Pues la forma "oficial" de hacerlo es mediante ADO.NET.

El problema es que es una tecnología que deja muchísimo que desear y
por el momento no conozco buenas alternativas.

Hasta el momento C# está muy mal preparado para trabajar con bases de
datos, a no ser que inviertas mucho tiempo creando una solución
propietaria para enlazar los formularios C# con una base de datos.

Si quieres probar ADO.NET encontarás mucha información en la MSDN y en
cualquier librería, pero pronto verás lo engorroso que resulta hacer
cualquier cosa mínimamente compleja.


Un saludo
Respuesta Responder a este mensaje
#8 knito
18/08/2004 - 17:05 | Informe spam
A los que les interese...

http://www.programacion.com/articul...sistencia/

knito.
Respuesta Responder a este mensaje
#9 knito
18/08/2004 - 17:09 | Informe spam
Muchas gracias José Luis por el tiempo empleado en responder a mi consulta.
segiré tu consejo... leeré sobre lo que me comentas.

Atte.
Knito.

"Jose Luis Manners" <josemanners(-arroba-)hotmail.com> escribió en el
mensaje news:
Hola Kinito,

Creo que antes de comenzar tu proyecto deberias tratar de adquirir algunos
conocimientos básicos de POO y programación por capas (n-tier). Puedes
encontrar mucha información sobre estos temas en MSDN, El Guille, etc.
Tambien te sugiero leer sobre patrones de diseño (Design Patterns).

Sin entrar en muchos detalles, yo hice un módelo de objetos bastante


BASICO
basado en lo que expones. No incluí las propiedades como Nombre,


Ubicación,
etc. porque lo único que te quiero mostrar son los objetos y la relación
entre ellos :

Continente
PaisCollection
Pais
CiudadCollection
Ciudad
BarrioCollection
Barrio

Bueno primero tienes un objeto Continente el cual posee un objeto tipo
colección PaisCollection. PaisCollection contiene una lista de todos los
objetos tipo Pais para determinado Continente. Piensa en PaisCollection
como si fuera un ArrayList de objetos tipo Pais. Cada objeto Pais a su


vez
contiene una colección CiudadCollection la cual es una lista de objetos
Ciudad que pertenecen a cada Pais. Y asi sucesivamente con los objetos


tipo
Barrio. Inclusive puedes tener un objeto tipo colección llamado
ContinenteCollection el cual sería una lista de todos los objetos
Continente. Sobre herencia lo que puedes hacer es teneer un objeto


llamado
algo así como LugarGeografico el cual contega las cosas comunes como


Nombre,
Ubicación, Agregar(), etc. y entonces todos los objetos individales (no


las
colecciones) heredarían estas propiedades y métodos del objeto
LugarGeografico .

Ahora bien, en términos de base de datos yo creo que cada objeto


individual
merecen estar en una tabla en la base de datos. Asi que tendrias una


tabla
aparte para Continentes, Paises, Ciudades, y Barrios las cuales deben


estar
relacionadas en la forma en que estan relacionados los objetos (pero no
necesariamente). Para esto te sugiero leer sobre relaciones de padre/hijo
en bases de datos.

Para crear los objetos desde las bases de datos te sugiero que leas


bastante
sobre capas y patrones de diseño. La idea es que cuando en tu programa
quieras construir el objeto ContinenteCollection todas las dependecias


sean
construidas a manera de cascada sin tu programa saber los detalles de como
se construyen. Los objetos serían construidos consultando la base de


datos
a través (pero no necesariamente) de una capa de accesso a datos (Data
Access Layer).

Bueno espero no te haya confundido más en lugar de ayudarte. Te sugiero
nuevamente que leas bastante antes de comenzar.

Saludos,

Jose Luis Manners, MCP

"Encuentra felicidad en tu trabajo o nunca serás feliz."
-Kung-Fu-Tsu (Confucio)

"knito" <knito~@~chile~.~com> wrote in message
news:
> Alfredo, tal vez no expliqué bien la finalidad, pero lo que necesito es
> crear objetos que me permitan manejar la información almacenada en


alguna
> parte, pero visto como una unidad dependiente.
>
> Por ejemplo:
>
> Objeto Continente
> Atributos: Nombre, Ubicación Geográfica, Países
> Métodos: Agregar País, Eliminar País, Listar Países
>
> Objeto País.
> Atributos: Nombre, Ubicacion Geográfica
> Métodos: Agregar Ciudad, Eliminar Ciudad, Listar Ciudades
>
> Objeto Ciudad
> Atributos: Nombre, Ubicacion Geográfica
> Métodos: Agregar Barrio, Eliminar Barrio, Listar Barrios
>
> Objeto Barrio
> Atributos: Nombre, Ubicacion Geográfica
>
> En fin, algo como ésto es lo que necesito hacer.
>
> Gracias.
>
>
> "Alfredo Novoa" escribió en el mensaje
> news:
> > On Tue, 17 Aug 2004 16:00:45 -0400, "knito" <knito~@~chile~.~com>
> > wrote:
> >
> > >Estoy empesando recien en C# y me sería de mucha utilidad si alguien


me
> > >pudiera dar una mano con el tema de POO. estoy modelando una pequeña
> > >aplicación que en términos simples maneje los datos de, por ejemplo,
> paises,
> > >ciudades, comunas o barrios, pero vistos como objetos para utilizar


los
> > >conceptos de herencia.
> >
> > Pues lo más importante es saber que la Programación Orientada al
> > Objeto no es para manejar datos. Para manejar datos se utilizan los
> > Sistemas de Gestión de Bases de Datos y el Modelo Relacional.
> >
> >
> > Saludos
> >
>
>


Respuesta Responder a este mensaje
#10 Melissa Ruiz
18/08/2004 - 17:28 | Informe spam
Hasta el momento C# está muy mal preparado para trabajar con bases de
datos, a no ser que inviertas mucho tiempo creando una solución
propietaria para enlazar los formularios C# con una base de datos.




Bueno, eso si es una mala noticia. Yo estoy urgida por aprender C# para
trabajar sistemas de gestion de datos y me decepciona un poco leer esa
opinion tuya.. Cual lenguaje a tu juicio es entonces mejor orientado a
manejo de datos ?

Alguna otra opinion ? o todos piensan igual que C# no esta muy bien
preparado para bases de datos ?


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