![]() |
interfaces und Debugger
Hallo zusammen,
ich verwende gerne interfaces u.a. als DTOs. Beispiel:
Delphi-Quellcode:
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.
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; 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 ;-) ) |
AW: interfaces und Debugger
Ich arbeite auch viel mit Interfaces und verstehe die Einschränkung der IDE auch nicht.
Schau Dir mal die Visualizer an: ![]() Man muss diese allerdings spezifisch für die eigenen Interfaces erzeugen und registrieren. :-/ |
AW: interfaces und Debugger
Bringt einen bei den Debugger-Einschränkungen nicht weiter, aber trotzdem am Rande:
Wenn es wirklich nur Daten sind würde ich es als einfachen Record machen, ein Interface ist da overkill. ![]() |
AW: interfaces und Debugger
Hallo,
@Günther: Ja Records sind das Gegenteil. Bei uns sind die Daten oft einfach, aber oft auch mit Arrays und Listen und auch schon manchmal polymorph. @Strahli: Visualizer hm, dünkt mich recht aufwendig. Wir haben hunderte dieser Daten und die ändern sich auch immer wieder mal. Aber das "property AsString: String" wäre mal eine Sache die ich näher überlegen möchte. Aaaah, noch eine Idee: die DTOs werden automatisch generiert aus dem interface, optional gibt es da auch records. Und dann kann man sich von einem interface sich das analoge Record geben lassen. Mal reinschauen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz