Hallo zusammen,
ich verwende gerne interfaces u.a. als DTOs. Beispiel:
Delphi-Quellcode:
type
IBlaInput = interface(IDataTransferObjectBase)
['{2106667F-B81D-4ACF-A8D6-740936FA0259}']
function GetDatumSystemType(): datumSystemTypeET;
...
property DatumSystemType: datumSystemTypeET read GetDatumSystemType;
...
end;
function CreateCharactIsoPositionEffectiveLengthCalculatorInput(const p_DatumSystemType: datumSystemTypeET; ...: IBlaInput;
TCharactIsoPositionEffectiveLengthCalculatorInput = class(TDataTransferObjectBase,
ICharactIsoPositionEffectiveLengthCalculatorInput)
strict private
FDatumSystemType : datumSystemTypeET;
...
function GetDatumSystemType(): datumSystemTypeET;
...
public
constructor Create(const p_DatumSystemType: datumSystemTypeET; ...);
property DatumSystemType: datumSystemTypeET read GetDatumSystemType;
...
end;
In dem Fall sind es reine Datenhalter um Informationen irgendwo hinzuschicken. Aber auch sonst verwenden wir oft interfaces. Insbsondere muss man sich dann (meist) nicht um die Freigabe kümmern was oft Fehler vermeidet.
Gegenüber einer normalen Klasse oder gar einem Record hat die Sache einen grossen Nachteil: der Debugger kommt damit nicht klar. Bei einem Record setzt man das einfach ins Watch-Fenster und sieht alles. Bei einem interface sieht man keine Daten und muss erst die Properties angeben.
Wie macht Ihr das? Habt Ihr Ideen wie man das bessern könnte? (Falls ihr überhaupt versteht was ich meine
)