Achten Sie auf zirkuläre Abhängigkeiten zwischen Ihren Klassen und Paketen, Sie wollen nicht Spaghetti-Code.
My Swing-Anwendung besteht aus 9 Modulen (Controller, Anwendung, Plattform, utils, Modell, Persistenz, Service, Logger und view)
Hier sind Abhängigkeiten:
view -> logger, controller, utils, model
controller -> logger, application, model, utils
application -> service, model, utils, platform
service -> persistence, model, utils
platform -> model
utils -> no dependencies
model -> no dependencies
logger -> model, utils
Eine gewünschte Abhängigkeits ist von Ansicht zu Controller aber nicht von Controller zu sehen.
Das Beste ist, einen Modullogger hinzuzufügen und einen Handler zu erstellen (der eine Observable ist), der Beobachter benachrichtigt (Ansicht wie JFrame, JFace = Beobachter).
Ansicht und Service (Ort, an dem Sie den Beobachter auslösen möchten) sind nicht voneinander abhängig, sondern durch das Logger-Modul.
Aber ich denke, der Databinder funktioniert auch so. Ich nehme an, außer Sie sind Framework-abhängig.Meine Lösung ist nicht, also wenn ich von Swing zu swt wechseln will, keine Sorge, ich implementiere es einfach für swt, und meine Geschäftslogik bleibt intakt.
Sie sollten alle mehr über Design denken. (Und maven verwenden.)
Schreiben Sie nicht noch ein anderes Logging-Framework, tun Sie es einfach nicht. Verwenden Sie log4j (oder slf4j, es scheint der letzte Schrei zu sein) – Justin
Ich stimme nicht zu, fügen Sie keine weitere Abhängigkeit, wenn Sie etwas so einfach machen wollen .. – dacwe