Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2006
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Ejemplo de OOP

Hola

he realizado un pequeño ejemplo de clases , lo voy a poner como archivo adjunto , para que veais si la forma de programar es la correcta.

Utilizo interbase y la tabla EMPLOYEE.GDB , que esta en C:\Archivos de programa\Archivos comunes\Borland Shared\Data

De todas maneras lo de la tabla es lo de menos , lo que quiero saber si es una buena forma de programar , y si hay alguna manera de mejorar lo puesto , como seria .

Un saludo
Archivos Adjuntos
Tipo de Archivo: zip OOP.zip (2,6 KB, 52 visitas)
Responder Con Cita
  #2  
Antiguo 06-11-2006
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
No termino de entender tu código, pero trataré de adivinar lo que pretendes:

Quieres trabajar con clases los registros de una base de datos??? algo similar a lo que sería un motor de persistencia relacional??

Si eso es lo que buscas mi consejo es que optes por alguna librería ya hecha para ese proposito y hagas uso de toda la tecnología que estas te brindan.

Instant Objects es una muy buena opción para que empieces en ese mundillo
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #3  
Antiguo 06-11-2006
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
No pretendo eso , sino , que si te dicen que tienes que programar OOP , pues si tienes que hacer cosas como esas .Esa es la duda .

Yo normalmente , pongo las tablas y los datasource en el modulo de datos , y luego si tuviera que hacer una busqueda lo hago en el formulario correspondiente , pero esto no es OOP , pues eso busco algún ejemplo práctico , de OOP .

Saludos
Responder Con Cita
  #4  
Antiguo 06-11-2006
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
Por eso maestro... trabajar con un motor como Instant Objects sería lo más cercano a realmente trabajar OOP contra una base de datos desde Delphi... lo demás que si el datamodule, que si la conexión donde va, que si tablas o querys, eso ya es preferencia de cada quien, ahi si no hay nada escrito.
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #5  
Antiguo 07-11-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.276
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por David
No pretendo eso , sino , que si te dicen que tienes que programar OOP , pues si tienes que hacer cosas como esas .Esa es la duda.
Vamos a ver, aquí estás mezclando dos conceptos (OOP y OPF).
OOP que yo sepa (significa Object Oriented Programming -si no lo han cambiado últimamente- ); Programación orientada a objetos, vamos.

Como bien te ha dicho Xander, a lo que tu código se aproxima es a una capa de persistencia (o FrameWork de Persistencia). Estás intentando "mapear" tablas de Bases de Datos en Clases (Proveedor).

Es algo así como intentar trabajar con Orientación a objetos en las Tablas de Base de Datos. Como eso no se puede hacer (ya que una Base de Datos no está orientada a objetos), pues se crea una capa intermedia que nos provee de trabajar con las Tablas como si fueran objetos. Esa capa es un Framework de Persistencia y está formada por un Core y un Diccionario (principalmente); En este caso tu diccionario está formado por la clase (TProveedores).

Imagina ahora que tuvieras 300 clases; Como supongo que en todas no querías programar el Locate, Insert, busquedas, Filtros, borrados,... Pues al final, en el diccionario quedan únicamente las clases y las operaciones se "sacan" al CORE (Gestor, Manejador,... como lo quieras llamar).
Ya tienes dos partes fundamentales del OPF. Luego le añades los Brokers/Conexiones/Conectores... (o como los quieras llamar) para interactuar con las diferentes Base de Datos existentes (ADO, IF, FB, Oracle,...) y tienes la tercera parte.

Bueno, espero no haber aburrido mucho con todo este párrafo.
Básicamente, e intentando contestar a tu pregunta, lo que tú estás haciendo es un paso más allá de la OOP; Es intentar "llevar" la OOP a la Base de Datos y eso tiene el nombre de "Capa de Persistencia".
__________________
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.
Responder Con Cita
  #6  
Antiguo 07-11-2006
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por David
Yo normalmente , pongo las tablas y los datasource en el modulo de datos , y luego si tuviera que hacer una busqueda lo hago en el formulario correspondiente , pero esto no es OOP , pues eso busco algún ejemplo práctico , de OOP .
De donde sacaste que no es OOP?



Un modulo de datos/Tdatasource/Tdataset es un procedimiento? No, es un objeto. Deriva de otro objeto, usa herencia. Utiliza un sistema polimorfico del cual se hace el streaming de objetos desde el archivo dfm. Tiene propiedades, metodos y eventos. Ende, es un objeto basado en clases que se instancia y se libera.

De hecho, TDataSource/TDataSet son clases excelentes porque aislan mediante una implementacion abstracta una fuente de datos externa.

Mapean usando objetos TField y otros una tabla. Me atrevo a decir que son un OPF, pero version 1.0 .

Lo que pasa es que hay implementaciones mejores o peores usando los mismos conceptos OOP.

Una *representacion* tipo Filas/Columnas es ideal para procesar varios registros y una *representacion* 1 a 1 es ideal para manejar de a un solo registro o expresar un workflow.

Es como la diferencia entre manipular matrices y manipular records. Obviamente un OPF trae muchas ventajas, pero convertir a la manipulacion de bases de datos en otra cosa no es una de ellas.
__________________
El malabarista.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ejemplo de facturas pharaonhx Varios 1 14-04-2005 17:40:27
ejemplo TQRPreview jymy788 Varios 4 09-03-2005 19:33:51
Perdi el ejemplo buitrago_listas SQL 1 19-01-2005 20:51:36
ejemplo streams zastilla Internet 1 11-11-2004 11:43:35
Ejemplo de DDe Alexander Varios 0 11-05-2004 20:22:16


La franja horaria es GMT +2. Ahora son las 14:35:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi