Betrachten Sie eine normale Anwendung für Kundenaufträge basierend auf dem MVC-Muster mit WinForms. Der Ansichtsteil ist zu groß geworden (über 4000 Dateien) und muss in kleinere geteilt werden.Zyklische Abhängigkeiten
Für dieses Beispiel werden wir drei Projekte für die Ansicht Teil verwenden:
- Haupt - hat Abhängigkeiten zu den anderen 2 Projekte. Instanziiert die Formulare mit den Listen.
- Kunden - hat 2 Formulare - Kundenliste und Kundendetails.
- Orders - hat 2 Formulare - Bestellliste und Bestelldetails.
Auf den Kundendaten bilden dort für diese Kunden auch eine Liste der Aufträge ist. Die Liste wird vom OrdersController empfangen, so dass es kein Problem ist, sie zu bekommen. Wenn der Benutzer eine Bestellung auswählt, erhält die Liste ihre Guid und gibt sie als Referenz an das Bestelldetails-Formular weiter.
Dies würde bedeuten, dass wir einen Verweis auf Orders Project im Kundenprojekt benötigen.(1)
Aber auch auf der Bestellung Details Formular gibt es einen Link zu dem Kunden, der diese Bestellung gemacht hat. Wenn Sie darauf klicken, sollte das Formular "Kundendaten" geöffnet werden.
Dies würde bedeuten, dass wir einen Verweis auf Kundenprojekt im Auftragsprojekt benötigen.(2)
Aus (1) und (2) werden wir zyklische Abhängigkeiten zwischen den Bestellungen und Kunden-Projekte haben.
Wie kann das vermieden werden? Eine Art von Plug-in-Architektur? Das Projekt ist bereits entwickelt und die beste Lösung wäre so wenig Code wie möglich.
Wie interagieren die Projekte miteinander? –