Delphi: Rekordkonstruktor vs. Factory-Funktion

Was ist nun die bevorzugte Methode zum Initialisieren von Datensätzen?

Mit einer 'Werksfunktion':

TMyRecord = record
  valueX: integer;
  valueY: integer;
end;

function MyRecord(const AValueX, AValueY: integer): TMyRecord;
begin
  result.valueX := AValueX;
  result.valueY := AValueY;
end;

var
  myrec: TMyRecord;
begin
  myrec := MyRecord(1, 2);
end;

oder ein Konstruktor:

TMyRecord = record
  valueX: integer;
  valueY: integer;
  constructor Create(const AValueX, AValueY: integer);
end;

constructor TMyRecord.Create(const AValueX, AValueY: integer);
begin
  self.valueX := AValueX;
  self.valueY := AValueY;
end;

var
  myrec: TMyRecord;
begin
  myrec := TMyRecord.Create(1, 2);
end;

Ich habe das Gefühl, dass die Konstruktor-Dinge mehr gekapselt sind, aber es macht es leicht, beim Lesen von Code verwirrt zu werden. Es sieht aus wie eine Klasse, die keinen Aufruf zur Befreiung hat. Es ist auch mehr zu tippen ...

Warum ziehen Sie eins dem anderen vor?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage