FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Programación Orientada a Objetos - Aplicación
Buenas tardes.
A algunos mi consulta les parecerá algo tonta, pero es algo que me está costando implementar en Delphi y necesito de su ayuda. Las aplicaciones que he hecho en Delphi, sean simples o con alguna complejidad fue siempre programando de manera procedural, nunca cree una clase; y ahora necesito y siento curiosidad por aplicar todos mis conocimientos teóricos aprendidos de POO en la práctica, y tengo ciertas dudas del orden en el que se escriben las cosas. Vamos a suponer, que mi aplicación es un ABM de Empleados, con una base de datos Firebird. Para conexion con la bd utilizo componentes IB. Creo la siguiente clase:
Luego tengo un form(F_Empleados) con tres botones(alta, baja y modificación de empleados) y un DataModule(Name dmDatos) con un objeto IBTable, llamado tblEmpleados. El boton Alta:
F_ABMEmpleado es otro form, el cual muestro al apretar Alta, donde tengo 3 Edits para el ingreso de los datos del empleado. Y un botón Guardar. En ese botón guardar hago...
Ahora les muestro mis métodos ValidarEmpleado() y GuardarEmpleado() de la clase Empleado
El código funciona. Ahora bien...es la manera correcta de hacerlo????? En el método GuardarEmpleado de la clase Empleado, defino tblEmpleados.... para pasar los datos a la base, por lo cual, esta clase no sirve para otra aplicación donde se necesite una clase Empleado; esto ultimo es lo que me hace dudar de si está bien escrito o no. Que consejos pueden darme?? Disculpen las "pifias" que pude haber tenido en la explicación. Muchas gracias. |
#2
|
||||
|
||||
Hola pape19.
Decir la manera "correcta" de hacerlo sería como decir que tu código es incorrecto y no es así, por que como mencionas, funciona bién. Pero creo que se le podrían hacer algunas mejoras. Si bién está probado, el código siguiente es sólo un ejemplo de guía.
Un ejemplo de uso:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Daniel,
Nelson. |
#4
|
||||
|
||||
Yo creo que la idea es buena. Se pueden modificar algunas cosas, pero el camino es el correcto.
Algunas sugerencias... (1) En la parte public de tu empleado has definido procedures para rellenar los diferentes "campos". Utiliza propiedades. Si además las colocas en la parte published te permitirá utilizar RTTI para trabajar con ellas. Lo cual te da mucha potencia y es muy útil para trabajar con POO, aunque tal vez eso puedas dejarlo para más adelante. Tal como te ha indicado ecfisa. (2) Si deseas aprovechar tu clase TCliente en otros lugares, deberías crear una propiedad (o las que necesites) para asignar los componentes de Base de Datos (TDatabase, TDataSet,...). De esa forma si la utilizas en otra aplicación sólo deberás rellenar esas propiedades con los nuevos valores. De esa forma "extraes" de la clase los elementos "concretos" que la unen a tu aplicación actual y la haces más universal. Algo así como los parámetros de una función. (3) Siguiendo con el punto anterior, si cada clase va a taner unas propiedades para la conexión a Base de Datos, lo lógico sería crear una clase "base" que posea los métodos, propiedades y código comunes a todas. De esta forma evitarás mucho código. (4) Más adelante, si dominas la herencia y con un poco de RTTI, puedes hacer que métodos como el Save, Delete, Buscar,... de la diferentes clases puedan estar codificados casi por completo en la "clase base", de esa forma si tienes 10 clases no tienes que implementarlos en todas ellas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Sus respuestas me han orientado muchísimo, sobre todo para poder encontrar información adicional. Por ejemplo, no tenía muy en claro lo que era RTTI; si bien he visto que no es fácil de aplicar, con estudio todo se aprende, y además el esfuerzo vale la pena porque realmente simplifica mucho código y logra aplicaciones con clases más "parametrizables" por decirlo de alguna manera. Lo que lleva a más reutilización, el anhelo de cualquier programador que toma esto como actividad, creo yo.
Dejo un link con un manual que me ha servido mucho para iniciar este camino por la POO en Delphi. http://delphi.about.com/od/oopindelp...elphi_oop2.htm En el FTP he subido su traducción: http://terawiki.clubdelphi.com/Delph...+en+Delphi.rar Neftalí y ecfisa, muchas gracias! Saludos! |
#6
|
||||
|
||||
pape19,
Cita:
Cita:
Nelson. Última edición por Casimiro Notevi fecha: 24-02-2014 a las 00:23:09. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Programación orientada a objetos + Aplicacion Ejemplo | pape19 | Varios | 4 | 19-06-2013 14:13:06 |
Programacion orientada a Objetos...duda total.... | Kenobi | Varios | 20 | 30-07-2008 15:38:25 |
Programacion Orientada A Objetos | sdiaz1983 | Varios | 8 | 16-11-2007 02:42:46 |
Es la Programación Orientada a Arquitectura una evolución de OOP? | Roll06lm | OOP | 4 | 23-10-2007 00:33:50 |
Programación Orientada a Aspectos | marcoszorrilla | Debates | 17 | 06-04-2004 23:18:27 |
|