Zitat von
taaktaak:
Ist es dann bereits ein unprofessioneller Denkansatz, zirkuläre Bezüge -wann immer es geht- zu vermeiden?
Jain. "Wann immer es geht" ist zu hart. Dieser Ansatz dazu führen, dass man sich beim Designen einen abbricht und einen Workaround einbaut, um eine Rückreferenz zu vermeiden. Nur führt dieser Workaround dann in aller Regel zu (viel) mehr Code, als eigentlich notwendig ist. Mehr Code = mehr Stellen, wo Fehler sein können. Mehr Code = mehr zu warten. Mehr Code = mehr zu testen. Und das liesse sich durch eine einfache Rückreferenz vermeiden.
Das ganze lässt sich im übrigen aber tatsächlich in 90% aller Fälle relativ einfach vermeiden: Man definiert ein Interface, und inkludiert dieses Interface in alle beteiligten Units. Interfaces sind nicht das Allheilmitteln, aber an der Stelle in den allermeisten Fällen das korrektere Hilfsmittel als überkreuzende Bezüge. Aber es gibt eben stellen, da macht auch ein Interface weniger Sinn als ein Rückbezug (insbesondere, wenn es um einen Typen geht, der nur einmal benutzt wird).