AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Mischen von Interface- und Klassenreferenzen
Thema durchsuchen
Ansicht
Themen-Optionen

Mischen von Interface- und Klassenreferenzen

Ein Thema von mjustin · begonnen am 20. Mär 2018 · letzter Beitrag vom 21. Mär 2018
 
mjustin

Registriert seit: 14. Apr 2008
3.010 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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz