Danke für die ausführliche Antwort!
Ein Weg, eine solche Abhängigkeit aufzubrechen, wäre, entweder eine eigene Ableitung dieser 3rd party Klasse zu machen und ein Interface implementieren zu lassen.
Das war mein erster Versuch, aber die Methoden der 3rd party Klasse sind ja nicht virtuell.
Müssen sie auch nicht - Beispiel:
Delphi-Quellcode:
type
TWuppdi = class // third party
public
procedure DoThings;
procedure DoOtherThings;
end;
IWuppdi = interface
procedure DoThings;
procedure DoOtherThings;
end;
TInterfacedWuppdi = class(TWuppdi, IWuppdi)
// möglicherweise noch die 3 IInterface Methoden implementieren
// hängt davon ab, wovon TWuppdi ursprünglich ableitet
end;
Dein Code nimmt dann statt einem TWuppdi Objekt das IWuppdi Interface entgegen und das lässt sich ausmocken.