Wir benutzen normalerweise auch eine Datei pro Interface und eine pro Klasse. Mit der Lösung funktioniert das problemlos, egal ob mit Interface oder Klasse
Das ist, zumindest bislang, auch mein Stil
Und ich glaube auch generell in der
VCL, denn irgendwie haben 3/4 aller Klassen ein "Custom" im Namen, alle die es nicht haben, sind meist abstrakt
Ich bin in meinen ersten Delphi-Monaten bislang nie in die Lage gekommen, Interfaces anstatt abstrakter Klassen zu nehmen. Irgendeine konkrete Teilimplementierung ließ sich bislang immer in eine Oberklasse herausziehen. Aber wie gesagt, ob das obendrüber jetzt nun ein Interface oder eine Klasse ist kümmert ja niemanden.
TDogOwner führt keine neuen Methoden oder Eigenschaften (mit Ausnahme der Referenz) ein. Ich muss also manchmal einen Typecast verwenden und manchmal nicht
Moment. Ich dachte, das sei nur ein Tippfehler und soll heißen
TCustomDogOwner = class(TDogOwner)
?
Dann markiere ich den TDogOwner noch als abstrakt damit mir keiner einen instanziiert.
Delphi-Quellcode:
if MyDog <> TDogOwner(MyDog.Owner).Dog Then
Writeln('The dog was stolen');