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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2009
Avatar de cacu
cacu cacu is offline
Miembro
 
Registrado: dic 2005
Ubicación: Chile
Posts: 132
Poder: 19
cacu Va por buen camino
Dudas sobre el diseño en 3 capas

Querido delphinarios quisiera solcitar su ayuda en lo siguiente.

A modo de poder aprender la oop es que me he dispuesto un ejemplo practico :
Suponiendo un sitema para una ferreteria he tomado solo lo que se refiere a la codificacion de productos
que la dispongo como SuperFamilia-Familia-Subfamilia-Producto.-

por ejemplo
Ferreteria---------------------------------------->Superfamilia
Electricidad ------------------------------------->Familia
Transformadores------------------------------>subfamilia
transformador electrico--------------->Producto



Desarrollar una aplicacion que maneje codigos usando como fuente de datos access.

la estructura de codigo es : Super Familia Familia SubFamilia Producto

Luego ya con esto creo las tablas correspondientes en access.-
Por su parte en delphi construyo lo siguiente.

3 unidades :
1.- llamada Dato -> (Data Module) contiene las conecciones
2.- llamada registro -> contiene los record de las estructuras de las tablas
3.- llamada clase -> contiene la definicion de clases




UNIDAD DATO :
esta unidad contiene las conceciones a la base de datos y
su coneccion con las tablas

PRIMERA DUDA
Es en esta unidad donde defino los procedimiento y funsiones de
acceso a las tablas
Ejemplo :


Cita:
> procedure Tdata.abreTabla;
> begin
> AdSpFamilia.Connection:=Coneccion;
> AdSpFamilia.TableName :='SUPERFAMILIA';
> AdSpFamilia.Open;
> end;

> Function Tdata.GetDato(AId: integer):boolean;
> var
> registro:boolean;
> begin
> with adSpFamilia do
> begin
> result:=Locate('sp_idsp',Aid,[]);
> end;
> end;


UNIDAD REGISTRO :
es aqui donde definio los diferente registros de las tablas ejemplo:
Type
_spFamilia = Record
sp_idsp :integer;
sp_desc :string;
end;
Type
_fmFamilia = Record
fm_idfm :integer;
fm_idsp :integer;
fm_desc :string;
end;
Type
_sbFmailia = Record
sbf_idsb :integer;
sbf_idfm :integer;
sbf_desc :string;
end;
Type
_pdtoProducto = Record
pdto_idpdto :integer;
pdto_idsb :integer;
pdto_desc :string;
pdto_marca :string;
pdto_tipo :string;
pdto_um :string;
pdto_stmi :integer;
pdto_stma :integer;
pdto_modelo :string;
pdto_serie :string;
end;

UNIDAD CLASES
Es aqui son donde defino las diferentes clases ejemplo:
type
Tsuperfamilia = class
private
data:Tdata;
Fdt :_spFamilia;
function carga:string;
public
constructor Create;
procedure actualzar;
property spid :integer read Fdt.sp_idsp write Fdt.sp_idsp;
property spesc :string read carga write Fdt.sp_desc;
end;


UNIDAD UNIT1
Unidad de forms

Ejemplo

procedure TForm1.FormCreate(Sender: TObject);
begin
spfamilia:=Tsuperfamilia.Create;
end;

Bueno mi gran duda es que si quisiera heredar si esta bien que en la unidad Dato Especifique los accesos a los datos o bien lo defino en cada clase para luego poder heredar...


Espero se comprenda esto
De antemando agradesco sus comentarios....
Saludos
Marco
Chile

Última edición por cacu fecha: 01-04-2009 a las 15:24:10.
Responder Con Cita
 



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
Duda sobre OOP y capas AzidRain OOP 4 04-08-2007 00:25:35
sobre aplicacion de 3 capas yoyo Providers 4 03-08-2007 18:08:12
Dudas sobre Locate silviodp Conexión con bases de datos 8 28-04-2004 14:59:26
dudas sobre el DataModule Giniromero Conexión con bases de datos 8 12-12-2003 13:33:13
Dudas sobre IP acertij022 Internet 0 20-05-2003 21:04:29


La franja horaria es GMT +2. Ahora son las 23:10:30.


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