Business Delegate

aus Wikipedia, der freien Enzyklopädie

Business Delegate ist ein Java-EE-Entwurfsmuster.

Bei mehrschichtigen Anwendungen erfolgen Methodenaufrufe zum Speichern und Auslesen von Daten über mehrere Schichten hinweg. Das Business Delegate Pattern wird verwendet, um die Präsentationsschicht (Presentation Tier) von der Geschäftslogik (Business Tier) zu entkoppeln. Grund für diese Vorgehensweise ist, dass eine zu starke Kopplung zwischen den beiden Schichten verschiedene Probleme hervorrufen kann.

So verhindert eine zu starke Kopplung oft eine optimale Wartung und Weiterentwicklung der verschiedenen Schichten oder einzelne Komponenten sind nur schwer auszutauschen. Des Weiteren ist die Präsentationsschicht labil gegenüber größeren Veränderungen in der Business-Schicht. Oft müssen in diesem Fall auch Änderungen in der Präsentationsschicht vorgenommen werden.

Um dies zu vermeiden, wird das Entwurfsmuster Business Delegate eingesetzt. Dadurch werden die internen Details der Implementierung der Geschäftslogik (z. B. JNDI-Lookup, RMI, Zugriff auf EJBs) für die Präsentationsschicht verborgen. Wie der Name delegate schon sagt, werden hier die Zugriffsfunktionen gekapselt und weitergeleitet.

Der Vorteil ist, dass die Präsentationsschicht leichter ausgetauscht werden kann, was besonders bei verschiedenen Clients von Nutzen ist. Die Business Delegate Klasse kann aber auch Ergebnisse puffern und dadurch die Rechenleistung signifikant verbessern. Ebenso können sehr technische Exceptions in für den Nutzer leichter verständliche Exceptions umgewandelt werden.

Werden Änderungen in der Implementierung der Business-Schicht vorgenommen, müssen nun nicht mehr alle Elemente der Präsentationsschicht geändert werden, sondern nur noch die Business-Delegate-Klassen.

Häufig gibt es in diesem Zusammenhang zusätzlich noch eine Business-Schnittstelle, welche die zur Verfügung stehenden Funktionalitäten der Business-Delegate-Klassen spezifiziert. Dadurch ist es möglich verschiedene Implementierungen des Business-Delegate-Musters bereitzustellen.

Ausführliche Informationen