Wenn ich eine Klasse gui und eine Klasse für die Logik habe, hält eine Referenz in GUI zu Logik und Logik zu GUI sehr schlecht?2 Klassen referenzieren einander ist das ok?
Antwort
Wenn Sie es vermeiden können, sollten Sie wahrscheinlich. Sonst könnte es später zu Problemen mit zirkulären Abhängigkeiten kommen.
Müssen sie wirklich voneinander wissen, oder könnten Sie ein drittes "Kontroll" -Konzept haben, das auf die beiden verweist?
Als allgemeine Regel ist es schlecht, dass die Klasse "logic" Kenntnisse über die Klasse "gui" besitzt. Die Idee hinter der Trennung ist das Model/View-Designmuster (oder Model/View/Controller). Die Ansicht benötigt einen Verweis auf das Modell. Schauen Sie sich genau an, warum das Modell einen Verweis auf die Ansicht benötigt. Wenn das Modell Informationen an das Ansichtsereignis senden muss, werden normalerweise Listener verwendet (siehe javax.swing-Tabelle und Listenmodelle für ein Beispiel).
Es sollte vermieden werden. In Ihrer GUI können Sie einen Verweis auf Ihre Domänenlogik haben, aber Sie sollten keinen Verweis auf Ihre GUI in Ihrer Domänenlogik haben.
Warum? Da sonst haben Sie keinen Vorteil der GUI & Domain-Logik in separaten Dateien aufteilen. Wenn Ihre Logik eine Abhängigkeit von Ihrer GUI hat, können Sie Ihre Logik nicht mit einer anderen GUI verwenden.
Also, Sie sollten versuchen, diese Abhängigkeit von Ihrer Logik zu Ihrem GUI zu vermeiden, oder Sie sollten Abstraktion davon machen.
Ich hoffe ich mache mich hier klar. :)
Die GUI muss wahrscheinlich eine Art Schnittstelle zur Logikklasse verfügbar machen, damit die GUI aktualisiert wird, wenn die Logikklasse etwas ändert.
Die Logik sollte keine direkte Kenntnis der GUI-Implementierung haben, nur ihre Schnittstelle.
Die Observer Pattern wird manchmal dafür verwendet.
- 1. Python-Klassen erben von einander
- 2. Zwei Mongoose-Schema referenzieren einander wenn iSTerting Daten über POST
- 3. Rundreferenz Problem mit Klassen, die einander
- 4. C++: Zwei Klassen, die einander brauchen
- 5. Ist das naiv gleich, Hashcode OK?
- 6. Ist das ok, COM in Apache-Modul
- 7. zwei Klassen, die sich gegenseitig referenzieren
- 8. Ist es OK
- 9. 2 Fremdschlüssel, die 1 Primärschlüssel referenzieren
- 10. Zufällige Strings in Python 2.6 (Ist das OK?)
- 11. Ansicht einander
- 12. Senden einer HTML-Formular 2 mal ohne einander
- 13. Unity-Registrierungen überschreiben einander
- 14. Ist es OK, das Repository im Ansichtsmodell zu verwenden?
- 15. ok, das hat funktioniert. was ist es genau?
- 16. Überprüfen Sie, ob das Ergebnis ok ist. Playframework
- 17. Der beste Weg für viele Klassen, eine Datenbankverbindungsklasse zu referenzieren
- 18. Backbone: ist 100 + Aufrufe ok?
- 19. Referenzieren der gleichen Variablen über zwei verschiedene Klassen
- 20. Können 2 CSS-Klassen das gleiche Skript aktivieren?
- 21. CSS3 - „Anschluss“ 2-Klassen-Animation
- 22. Können Knotenmodule einander benötigen
- 23. Mysql, das OK aber ohne Ergebnisse zurückgibt
- 24. Wie haben zwei Modelle verweisen einander Django
- 25. Prozesse, die einander verfolgen
- 26. JavaFX 2 und CSS-Klassen
- 27. C++ - 2 Klassen 1 Datei
- 28. Ist OK, um schwache Selbst in ViewDidLoad
- 29. Ist es OK, Code im Stammverzeichnis eines Projekts zu haben?
- 30. ViewControllers überlappen einander in Main.Storyboard