Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#32

AW: Programmierdogmata

  Alt 8. Apr 2013, 15:22
Eine Anwendung aus dem Bereich der Logistik soll "mandantenfähig" gemacht werden; d.h. es soll mit mehreren Mandanten statt bisher nur einem umgehen können.
Das Problem war aber dass die zum Mandanten gehörenden Daten in einem globalen Objekt gespeichert wurden
Delphi-Quellcode:
var
  AdrMandant : TAdresseMandant; // enthält Name, Anschrift, Tel, EMail, Fax, Kontoverbindung, Umsatzsteuernr,...
Auf diese globale Objekt greifen aber hunderte Units zu.

Wenn man die Mandantendaten ändert weil man z.B. eine Rechnung drucken möchte, dann hat das globale Auswirkungen auf die ganze Anwendung.
Letztendlich wurde die globale Variable vernichtet und vielen Klassen wird jetzt das Mandantenobjekt von Aussen übergeben.
Auch wenn ich noch nicht restlos von der Überflüssigkeit globaler Variablen/Constanten.. überzeugt bin, so ###### kann doch kein Mensch/Programmierer sein?
Spätestens beim Einsatz der zweiten Unit, wird das doch so komplex, daß man eine saubere Schnittstelle braucht und sich nicht auf "das steht da irgendwo in der..." zurückziehen kann.

Eben darum sollten ja auch die Daten von der Oberfläche getrennt sein.

Ich bin viel zu faul (je weniger Aufwand für ein Ergebnis desto besser) als daß ich mir so etwas antuen würde.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat