Is te lezen in dit fragment .
staan de non-GUI datacomponenten nog steeds op het GUI-Form,
Dat is niet 100 % correct. De BO-objecten zijn afgeleiden van datacomponenten waarbij de regels geprogrammeerd zijn in de code van het object zelf. Deze objecten staan zelf ergens in een unit ( meestal geen datamodule ).
In de klassieke benadering wordt de code gevormd door bij een instance van een klassiek datacomponent de properties en de methods te gebruiken.
Ik verklaar me nader: indien je in een Form een variabele maakt TRekening, dan kun je naar een rekening schrijven met de functie:
DELPHI Code:
Rekening.Rekeningnummer:= Edit1.Text;
De variabele "Rekening" staat wel op de form, maar de afhandeling ( controle, formatering, ... ) wordt gedaan door het object TRekening ergens in een Unit UntRekening. Elke form kan zijn eigen variabele "Rekening" hebben, maar toch is de controle gemeenschappelijk en heb je de scheiding tussen de lagen.
In de form kunnen wel wat properties gezet worden of methods uitgevoerd, maar bevat in principe geen code
DELPHI Code:
Procedure Form1.OnButtonClick(Sender: TComponent);
begin
DataModule1.VerwerkKlant(FactuurNr);
end;
DELPHI Code:
Procedure Form1.OnButtonClick(Sender: TComponent);
begin
Factuur.KlantNr:= KlantNr; // de klassieke methode
Factuur.VerwerkKlant;
end;
DELPHI Code:
Procedure Form1.OnButtonClick(Sender: TComponent);
begin
Klant.Factuur.VerwerkData; // dynamische encapsulatie
end;
Bovenstaande code verschilt in techniek van programmeren maar allemaal respecteren ze de scheiding van de lagen
Bookmarks