Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#31

AW: Class Helper als Lösung für zirkuläre Unit-Referenzen

  Alt 27. Aug 2013, 07:44
aber solange man Interfaces nicht in die gleiche Datei packt, hat man das gleiche Problem.
Und wenn man sie in eine Datei packt (bzw. nur die voneinander abhängigen Interfaces), dann eben nicht. Es ist nun einmal eine Spracheigenschaft von Delphi, mehrere Klassen in einer Datei halten zu können um damit bestimmte Dinge zu regeln (private vs. strict private und eben Forward-Deklarationen).

Der klassische Ansatz ist die Forward-Deklaration:
Delphi-Quellcode:
Type
  THund = Class;

  THundebesitzer = Class
    Property Hund : THund...
  end;
  
  THund = Class
    property Besitzer : THundebesitzer;
  End;
Und eigentlich ist das sehr schön lesbar, denn sobald man auf eine Forward-Deklaration stößt, weiß man, das hier Kreise im Spiel sind.

Im Übrigen löst die VCL das Problem der zirkulären Referenzen ja nicht, weil sie TCustomXXX und TXXX implementiert, sondern indem sie die Klassen in einer Datei vorhält (soweit ich das überschaue, jedenfalls).
  Mit Zitat antworten Zitat