Thema: Delphi Umgang mit Interfaces

Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Umgang mit Interfaces

  Alt 12. Dez 2013, 10:24
Eine solidere Lösung wäre einen Compiler zu verwenden, der besser ist (z.B. FreePascal mit "Corba-Interfaces").
Wenn man bei Delphi bleibt muss man eben den unsichtbaren Refenz-Zähler Kram so gut es geht aushebeln und höllisch aufpassen.
Wer meint es besser zu wissen bzw. sein Anwendungsfall es unbedingt erfordert, muss ja nicht von TInterfacedObject ableiten, sondern kann selber die IInterface-Methoden implementieren bzw. wie schon von Günther angesprochen mit System.Generics.Defaults.TSingletonImplementation arbeiten.

Die "automatische" Referenzverwaltung von Inferface-Objekten ist in meinen Augen sehr bequem und ermöglicht ein sehr komfortables modernes programmieren.
Ähnliches wurde ja im Next-Gen-Compiler für mobile Platformen von Emba umgesetzt.

P.S: Zur Laufzeit mit Supports zu arbeiten ist etwas, was man so gut es geht vermeiden sollte. Eine Haupterrungenschaft der Objektorientierung war, dass man statt mit schwammigen Pointern jetzt mit feste Typen arbeiten kann. Wenn man jetzt wieder anfängt zur Laufzeit Pointer herumcasten ist das irgendwie sehr Retro.
Das ist so auch nicht richtig und zu dogmatisch.
Oft liegt der Fall vor, dass ein Objekt zwei bis drei Interfaces implementiert.
Je nachdem muss man dann zwangsläufig testen, ob ein bestimmtes Interface unterstützt wird.

Siehe auch die obigen Beispiele.
Hast du nur ein Objekt von Typ IInteger vorliegen, musst aber schauen ob ISomeThing unterstützt wird (oder umgekehrt) -> wie sollte man es sonst machen?
  Mit Zitat antworten Zitat