Klassen, die sich gegenseitig kennen, sind i.A. (also nicht immer!) ein Indikator für schlechtes Design.
Volle Zustimmung
Ich würde es mit einem Mediator-Pattern versuchen...
Ich würde versuchen eine gemeinsame
Basisklasse von TKapitel und TAbschnitt zu extrahieren:
Delphi-Quellcode:
TBuchKnoten = class
// Gemeinsamkeiten von TKapitel und TAbschnitt hier rein
...
end;
TAbschnitt=class(BuchKnoten)
private
Parent:BuchKnoten; // Elternteil ist meist ein TKapitel (könnte aber auch TKlappentext sein)
end;
TKapitel=class(BuchKnoten)
private
Abschnitt : TAbschnitt;
end;