¿Alguien tiene ejemplos de programas POO?

Jesus Rodriguez foxandxss en gmail.com
Jue Nov 30 00:57:07 CET 2006


Buenas!

Estoy aprendiendo la POO pero aún me cuesta diseñar los programas.

Me gustaría que me explicaseis que debería de hacer desde que leo el
enunciado de un problema hasta que todo está bien.

Soy autodidacta, así que me resulta todo un poco más complejo.

Hoy hice un programa básico.

Se trataba un un simulador de un cajero del banco (aunque en vez de insertar
tarjeta de credito, pues pide login y pass), así que logueas y una vez
dentro pues puedes retirar dinero, ver tu capital y hacer transferencias.

Así que lo primero que hice fue comprender el problema y dije bueno, usaré
SQLITE que no lo hice nunca y asi aprendo.

asi que empecé a tirar código de la clase libreria (basedatos.py)

lo primero fué comprobar si existia la base de datos, si existia pues
simplemente abria una conexion a ella, si no, pues creaba la tabla, la
rellenaba con un par de entradas para probar.

Luego fui escribiendo metodos que iba pensando que me harian falta, por
ejemplo buscar un login y pass en la base de datos y comprobar si existian.

Así que creé una clase login la cual en cada intento de login, llamaria a
base de datos para que buscara mi login y me retornara pues False o el
cliente.

Asi que cree una clase Cliente que sería rellenada con lo que base de datos
retornó a login.

Pero ya empezaban los problemas (ya que de diseño poco) y cuando por ejemplo
sacaba dinero, la msima clase cliente llamaba a la base de datos para
actualizar la base de datos (asi que volvi a base de datos y escribi el
metodo de actualizar), luego para las transferencias hice quizas algo más
feo ejejje, vi que necesitaba algo más, y escribi un metodo en base de datos
para poder buscar un ID y si existia pues le hacia una transferencia, pero
todo dentro de la clase Cliente, cosa que no me gusta.

Asi que una vez que hice las 3 clases, cree una llamada principal, que
hiciera login y mostrara un menu de opciones y segun la que eligiese, pues
simplemente ejecutaba un metodo de la clase Cliente u otro (que feo :S).


Siendo este mi primer proyecto serio y "complejo" (aunque es sólo un
ejercicio de un libro que estoy leyendo (el tema es "Object Oriented
Design"), estoy viendo ciertas cosas:

No veo facil el empezar el programa tirando codigo, ya que te quedas
pensando.... bueno y que mas deberia de hacer? y a mitad del programa te
acuerdas de algo nuevo y lo añades a tu codigo (o parches ahi feo :P), al
final terminas el programa de una forma mala, no sé, eso de ir insertando
codigo en ciertos modulos conforme te vas acordando pues me parece una
guarrada.

Lo peor es que vas diseñando al vuelo y terminas con una clase "Cliente"
donde usa base de datos... ¿Acaso vamos a un cajero y tenemos que insertar
los cambios manualmente?

Gracias a dios me doy cuenta de todos los fallos que voy cometiendo.

La pregunta es: ¿Alguien podría indicarme los pasos para poder diseñar y
programar un buen programa?

Por otro lado: ¿Alguien tiene código de este estilo (relaciones entre
clases) que pueda mostrarme para aprender? o alguna web que explique un poco
de OOD para python.

Sé que no puedo hacer programas PERFECTOS de un tirón, pero sí me gustaría
ir mejorando mi tecnica conforme voy haciendo programas.

También agradecería si alguno puede no sé, decirme algun ejemplo para
practicar, no sé, algun programa de este estilo en el que tenga que diseñar
varias clases que se relacionen entre si y que penseis que no sea muy
dificil de diseñar (tampoco voy a diseñar un SO desde el principio :P)

Bueno, creo que no tengo nada más que decir (que no es poco :P)

Muchas gracias y espero vuestras respuestas :)




Más información sobre la lista de distribución Python-es