Okay. Also, für jeden den Spring nichts sagt, Spring ist ein Framework für "Dependency Injection". Das ist kein böses oder gar ausgedachtes Wort, o.ä. sondern ein ziemlich nützliches Mittel um Zugehörigkeiten vom "Master-Slave-Prinzip" unter Kontrolle zu haben.
Google hilft da sehr weiter.
Das Framework hier, das "Register-Handler Framework" (RHF) vereint mehrere Prinzipien. Zum einen Dependency Injection und "Singleton-Pattern" ohne die direkte Nutzung vom Singleton-Pattern und etwas, dass ich das Register-Pattern nenne. Die Idee, dass Instanzen zu Registern gehören und nicht zu Prozeduren. Das sorgt für kontrollierte Instanz-Zugehörigkeiten ohne dass Prozeduren Instanzen teilen müssen.
Vorteile, die mir so schnell einfallen wären:
- leichteres Debugging
- Erhöhte Wiederverwendbarkeit in Modular aufgebauten Programmen.
Nachteile:
- Mehr Code und kompliziertere Instantiierungen
Außerdem ist es super für das MVP(Model-View-Presenter)-Pattern. Die Idee von MVP ist es, die konkrete "Sicht" und die Daten für die Sicht zu trennen und durch "Presenter" zu vereinen. Der View kennt den Presenter und der Presenter kennt die Model. Auch hier hilft
Google.
Das RHF ist dabei ein vollwertiger Presenter. Mehrere View-Instanzen können nämlich hier gleiche Instanzen von Objekten nutzen, ohne dass sie diese Übergeben müssen. Wir machen also konkreten Gebrauch von dem Presenter. Ein konkretes Beispiel wäre hier sowas wie:
Fenster (Gui, also der View) fragt RegisterHandler (den Presenter) nach Nutzernamen (den Model). Der Holt sich aus dem Register das Model aller Nutzernamen und kann diese an mehrere Fenster geben. Auch wenn sich hier etwas verändert, kann das ganz einfach jeder View erneut übernehmen, bzw muss es nicht einmal, nutzt er das entsprechende (also ein bestimmtes) Register nutzt.
Ist das so verständlicher? Oder habe ich jetzt noch mehr komische Begriffe in den Raum geworfen, was mehr Verwirrung stiftet als es aufklärt?
Etwas schnelleres Feedback wäre wirklich cool..