Gracias por ayudar AzidRain.
Bueno, a ver... si logro unir las cosas siguiendo tu modelo híbrido. Con lo que yo voy armando.
1. Yo tengo varias clases, que operan y se pasan parámetros. Todo lógica, nada de interfaz... Este conjunto forma la capa lógica.
2. En la capa más baja (Datos) está el/los DataModule/s con el Connection, y posibles algunos que otros Tables, Querys, etc
La comunicación entre las clases y la base de datos debe pasar por el DataModule. Eso creo que está claro, al menos así lo entiendo yo. Y dependiendo de las consideraciones, analáisis, etc... se debe hacer un "canal" más o menos estrecho.
Este canal de comunicación está formado por clases que son las que propiamente tienen encapsulada los eventos y/o procedimientos para permitir las operaciones habituales sobre la base de datos:
*Agregar
*Modificar
*Borrar
*Consultar
Por lo tanto estas clases deberán ser las más bajas de la capa.
Hasta aquí llego teóricamente, ahora... en forma práctica... ¿esto se consigue con algo similar a esto?
Código Delphi
[-]TUnaClaseDeInteres = class
private
FModulo: TDataModule; FConsulta: TQuery; public
constructor Create; override;
destructor Destroy; override;
function Agregar(InfoInteres: TInfoInteres): algun_tipo_adecuado;
function Agregar: algun_tipo_adecuado; overload;
end;
De modo que, si el análisis lo amerita se pueda hacer algo como:
Código Delphi
[-]TUnaClaseHija = class(TUnaClaseDeInteres);
private
FAlgodeInteres: tipo;
public
end;
Ahora, como le indicaría que debe hacer contacto con el datamodule? Allí me lio... Sería conveniente ver la posibilidad de hacer algo como:
Código Delphi
[-]
UnaClaseDeInteres.AsignarModulo(ElDataModuleAdecuado);
Si voy entendiendo bien... o si tienen críticas, serán escuchadas.
Muchas gracias.