Wenn man ein Objekt erst einmal einer Interface-Variablen zugewiesen wurde, niemals wieder zurück auf die Object-Klasse gehn.
Auch keine Variablen mit Referenz auf das Object halten.
Sonst kommt man über kurz oder lang in Teufels Küche.
Aber so ein Konstrukt zur Initialisierung ist zulässig:
Delphi-Quellcode:
function CreateMyInterface(AParam1, AParam2: Integer): IMyIntegerface;
var
MyObject: TMyObject;
begin
MyObject := TMyObject;
MyObject.Param1 := AParam1;
MyOpject.Param2 := AParam2;
{Referenzzählung startet, nur noch auf Interface zugreifen}
Result := MyObject;
end;
Properties im Interface sind unabhängig von den Properties einer Klasse.
Es genügt z.B. die Getter und Setter in der Klasse zu definieren und die Properties ausschließlich im Interface.