Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Mehrere unterschiedliche Objektersteller alle als 'Create'?

  Alt 10. Okt 2013, 19:53
Wenn ich eine Initialize-Methode veröffentliche, habe ich das Risiko, dass die eben nicht nur unmittelbar nach dem Erzeugen des Objekts aufgerufen wird, sondern auch danach noch.
Das ist richtig. Aber das kannst Du ja sicherstellen. Ich kann doch ein Objekt instantiieren und erst später zum Gebrauch Initialisieren.

Delphi-Quellcode:
Constructor TMyClass.Create(ImportantValues : TSetOfValues);
Begin
  ThisAndThat := ImportValues;
  Initialized := False;
End;

procedure TMyClass.LoadFromDatabase(...);
Begin
  If Initialized then Raise Exception.Create("Object allready initialized");
  Database.Load(Self);
  Initialized := true;
End;
Ist jetzt nicht so kompliziert. Ich kann deinen Einwand aber nachvollziehen. Das Belegen mit Initialwerten gehört in den Konstruktor, denn damit wird das Verhalten der Instanz definiert.

Das Laden aus einer Datenbank gehört eindeutig nicht dort hin. Es ist zudem viel schlechter testbar.
  Mit Zitat antworten Zitat