Für jemanden, der relativ neu im Java-Ökosystem ist, gibt es einen ziemlich leichten Weg zu tun, was Frameworks wie Qt und Django mit ihrem Signal-/Empfängersystem tun, wo Komponenten sagen können: "Ich mache etwas ", und andere Komponenten können das ziemlich lose miteinander umgehen?Java - Signal/Slots-Mechanismus
Ich entschuldige mich im Voraus, wenn diese Frage den "objektiven Einzelantwort" Test nicht besteht.
Bearbeiten: Um ein wenig mehr Kontext hinzuzufügen, bezieht sich dies auf eine datenbankgesteuerte Anwendungsschicht für einen Webdienst. Bestimmte Ressourcen müssen, wenn sie beibehalten werden, auch einen Prüfdatensatz speichern, der zusätzliche Kontextinformationen enthält. In Django würde ich das über den Signalmechanismus tun oder eine von mehreren existierenden Bibliotheken benutzen, die genau das tun. Für ein Scala-Programm habe ich meine eigene Hacky-Sache mit Callback-Funktionen gemacht, aber es ist einfacher mit erstklassigen Funktionen. Ich habe keinen Zweifel daran, dass Frameworks wie Swing Möglichkeiten für diese Art von Dingen bieten, aber ich bin (vielleicht ungerechtfertigt) bereit, eine solche Abhängigkeit zu einer derzeit ziemlich vanilligen Anwendung hinzuzufügen (nicht, dass Django nicht selbst eine ist) massive Abhängigkeit von Vanille Python!)
Sind Sie sprechen [ereignisgesteuerte Modelle] (http://en.wikibooks.org/wiki/Java_Programming/Event_Handling)? – jefflunt
Auf einer mittleren bis großen Komponentenebene, wo Sie Schnittstellen haben, die 2 oder mehr Methoden implementieren, denke ich, dass Dependency Injection den Kampf um die Kopplung von Komponenten gewonnen hat. Auf der kleinen Ebene (wie das Bereitstellen einer Aktion für eine GUI-Schaltfläche) ist das Listener-Muster König. –
@normalocity: Ja, aber nicht direkt mit GUI-Programmierung verbunden. – Mikesname