Einzelnen Beitrag anzeigen

mjustin

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

Re: Unit mit Objekten aufteilen

  Alt 10. Aug 2009, 17:24
Zitat von Optiplex:
@himitsu
genau das ist mein Problem, da die Klassen sich gegenseitig über Änderungen benachrichten sind diese natürlich im Interface deklariert. Ich hatte gehofft,dass hier jemand vielleicht einen Trick kennt um dieses Problem zu lösen.
* Wollknäuel-Methode (auch als Houdini-Methode bekannt): man beginnt an einem losen Ende in Form einer Klasse ohne Abhängigkeiten zu den anderen (also nur Abhängigkeiten zu Standard-Delphi-Units), das man dann in eine neue Unit extrahiert.

* Interfaces statt Klassen verwenden z.B. in Methodensignaturen: dadurch kann man die starke Kopplung der Klassen auflösen. Die Interfaces werden in einer neuen Unit definiert. So können wieder 'lose Enden' entstehen (weitere Klassen, die in eigene Dateien ausgelagert werden können)

* Hilfsklassen in Implementation verschieben. Beispiel:

Delphi-Quellcode:
interface
type
  TMyThread = class(TThread)
   ...
  end;
  
  TMyClass = class(TObject)
  private
  FMyThread: TMyThread;
  ...
  end;
wird zu

Delphi-Quellcode:
interface
type
  TMyClass = class(TObject)
  private
  FMyThread: TThread;
  ...
  end;

...

implementation
type
  TMyThread = class(TThread)
   ...
  end;
Das hilft z.B. wenn TMyThread wieder Klassen referenziert, die man lieber niht im interface hätte. Wenn TMyThread in einer eigenen Unit liegt, ist es wieder 'global' sichtbar, da sollte es nur sein wenn es eine gute Begründung gibt (Geheimnisprinzip).
Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat