Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Daten und Oberfläche kapseln? (https://www.delphipraxis.net/143514-daten-und-oberflaeche-kapseln.html)

Hedge 17. Nov 2009 13:40


Daten und Oberfläche kapseln?
 
Es geht hier mal um eine Grundlagenfrage.

Ich habe ein Hauptformular in meinem Programm.
Die Daten mit denen u.a. das Form befüllt wird, werden in 3 Instanzen des Typs TDaten hinterlegt die an vielen Stellen der Unit benötigt werden.

Delphi-Quellcode:
var
  MainForm: TMainForm;

implementation

{$R *.dfm}

var
  daten1:TDaten;
  daten2:TDaten;
  daten3:TDaten;
Im OnCreate-Event des Forms werden daten1-3 instanziert.

Kann man das schon als Kapselung verstehen?

DeddyH 17. Nov 2009 13:42

Re: Daten und Oberfläche kapseln?
 
Nö, jede Instanz des Forms würde auf genau dieselben Daten zugreifen. Wenn Du aus den globalen Variablen private Felder machst und den Zugriff darauf über Methoden implementierst, dann kann man von Kapselung reden.

Hedge 17. Nov 2009 13:45

Re: Daten und Oberfläche kapseln?
 
Sollte ich das direkt in der TMainForm machen oder nochmal dafür eine eigene Klasse anlegen?

DeddyH 17. Nov 2009 14:02

Re: Daten und Oberfläche kapseln?
 
Wenn die Daten Bestandteil des Formulars sein sollen, würde ich auch Properties des Formulars deklarieren. Haben sie dagegen eigentlich nichts mit dem Formular zu tun, würde sich eine eigene Klasse anbieten.

Tyrael Y. 17. Nov 2009 14:24

Re: Daten und Oberfläche kapseln?
 
Eine echte Kapselung von Oberfläche und Verabeitung erreicht man indem man das Ganze dreigliederig aufbaut.

1. Das Formular - das Formular kann "nichts", es bietet Controls zur Darstellung.

2. Die Verarbeiter - Eine oder mehrere Klassen, die bestimmte Funktionaliäten abieten.
Beispiel:
Delphi-Quellcode:
 TAddierer = class
 public
   function AddiereInt(Wert1, Wert2: Integer): Integer;
 end;
3. Der Zusammenführer - Diese Klasse verbindet die Verabeiter Klassen mit der Formular Klasse.


Mit dieser Dreigliedrigkeit, kann man das Fornmular und die Verabeiter-Klassen überall unabhängig einsetzen.
Nur die Zuasmmenführer Klasse muss im Notfall geändert/ausgetauscht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz