Interfaces bieten hier die Möglichkeit einen deutlich lockeren Verbund zu erstellen. Durch die Maßgabe gegen das Interface zu implementieren und nicht gegen eine Implementierung kann ich die Implementierung auch jederzeit austauschen, z.B. um Tests durchzuführen...
Klar, die Vorteile von Interfaces gibt es, aber solange man Interfaces nicht in die gleiche Datei packt, hat man das gleiche Problem. Bei Interfaces kommt deshalb das gleiche Schema in Frage.
Ich selbst habe das bisher eigentlich immer ohne Kreuzreferenz lösen können.
Moment. Ich dachte, das sei nur ein Tippfehler und soll heißen TCustomDogOwner = class(TDogOwner)
?
Schau mal in den
VCL Quelltexten noch einmal.
Custom ist die Basis für konkrete Ableitungen, die dann nicht mehr das Custom drin haben. Zum Beispiel:
Delphi-Quellcode:
TCustomEdit = class(TWinControl)
TCustomMemo = class(TCustomEdit)
TEdit = class(TCustomEdit)
TMemo = class(TCustomMemo)