Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#1

Mischen von Interface- und Klassenreferenzen

  Alt 20. Mär 2018, 13:45
Delphi-Version: 5
Hallo,

im neuen Blogartikel "Don't mix objects and interfaces" erläutert Dalija Prasnikar die Probleme die entstehen wenn Objekte und Interface vermischt werden.

Ihre Codebeispiel sind überraschend, denn wie hier in der DP gelegentlich geschrieben wurde kann in Factorymethoden eine interne Instanz der Klasse erzeugt werden und am Ende eine Interfacereferenz zurückgegeben:

Delphi-Quellcode:
function CreateFoo: IFoo;
var
  TmpFoo: TFoo;
begin
  // Instanz der Klasse TmpFoo erzeugen, die von TInterfacedObject abgeleitet ist und IFoo implementiert
  TmpFoo := TmpFoo.Create();
  // diverse Properties setzen die nicht Teil des IFoo Interface sind
  TempFoo.X := 1;
  // ...

  // Interface zurückgeben
  Result := TmpFoo;
end;
Laut Blogartikel ist allerdings das

TmpFoo := TmpFoo.Create();

ein "huge no-no". Ist das Codebeispiel dennoch eine saubere Verwendung von Interfaces?
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat