Mit dem entsprechenden Design lässt sich so eine zyklischen
Unit-Referenz in der Regel vermeiden. Obwohl sowas prinzipiell geht, versuche ich das weitestgehend zu vermeiden. Bei Projekten, in denen das über einen langen Zeitraum akzeptiert oder gar bewusst praktiziert wurde, kann das schon mal etwas aufwändiger werden. Bisher hat sich das Auflösen solcher Zyklen aber immer als vorteilhaft dargestellt. Deswegen würde ich hier gleich zu einem entsprechenden Design raten, bei dem keine Zyklen vorkommen.
Bill Meyer geht in seinem Buch
Delphi Legacy Projects: Strategies and Survival Guide auf die Nachteile solcher UDC (
Unit Dependency Cycles) ein. In einer
Präsentation schreibt er:
Zitat:
Long Build Times
•At some point, large projects may begin to suffer long build times.
• These build times are the result of
Unit Dependency Cycles (UDCs).
•A UDC is created when UnitA uses UnitB, which uses UnitA.
•In a large project with many UDCs, once the build times begin to
increase, the problem will multiply.
•UDC effect on builds is an exponential burden. The exponent is small,
but any exponent will eventually become a burden.