Delphi: конструктор записей и функция фабрики

Итак, что будет предпочтительным способом инициализации записей?

С «заводской функцией»:

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;

или конструктор:

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;

Я чувствую, что конструктор более инкапсулирован, но при чтении кода легко запутаться. Это делает его похожим на класс, в котором отсутствует призыв к бесплатному. Это также больше, чтобы напечатать ...

Почему вы предпочитаете один другому?

Ответы на вопрос(4)

Ваш ответ на вопрос