Business-Delegate-Muster
Das Business-Delegate-Muster wird verwendet, um die Präsentationsschicht und die Business-Schicht zu entkoppeln. Es dient grundsätzlich dazu, Kommunikations- oder Remote-Abfragefunktionalität von Code der Business-Schicht in Code der Präsentationsschicht zu reduzieren. In der Business-Schicht haben wir die folgenden Entitäten.
- ClientDer Code der Präsentationsschicht kann JSP-, Servlet- oder Java-UI-Code sein.
- Business Delegate- Eine Einstiegsklasse, die für Client-Entitäten bereitgestellt wird und Zugriff auf Business-Service-Methoden bietet.
- Query Service (LookUp Service)Das Lookup-Service-Objekt ist dafür verantwortlich, die relevante Business-Implementierung zu beschaffen und Business-Objekten Zugriff auf das Business-Delegate-Objekt zu ermöglichen.
- Business Service- Business-Service-Schnittstelle. Die Entitätsklasse, die diesen Business-Service implementiert, stellt die tatsächliche Business-Implementierungslogik bereit.
summary
Absicht
Abstrahieren und kapseln Sie die Zugriffslogik der Anwendung, wodurch die Präsentationsschicht Zugriff auf die Geschäftslogikschicht erhält.
Hauptproblem, das gelöst wird
- Lösen Sie das Kopplungsproblem zwischen der Präsentationsschicht und der Geschäftslogikschicht, sodass die Präsentationsschicht über den Business Delegate indirekt auf die Geschäftslogikschicht zugreifen kann.
Anwendungsfall
- Wenn in einer mehrschichtigen Anwendung die Notwendigkeit besteht, die Präsentationsschicht und die Geschäftslogikschicht klar zu trennen.
Implementierungsansatz
- Business-Delegate-Schnittstelle: Methoden für den Zugriff auf die Geschäftslogik definieren.
- Business-Delegate-Implementierung: Die Business-Delegate-Schnittstelle implementieren und die Logik für den Aufruf der Geschäftslogikschicht kapseln.
- Business-Service: Schnittstelle oder Klasse der Geschäftslogikschicht, die Geschäftsoperationen enthält.
Schlüsselcode
- Business-Delegate-Schnittstelle: Methoden für den Zugriff auf die Geschäftslogik deklarieren.
- Business-Delegate-Implementierung: Die Schnittstelle implementieren, enthält Code, der den Business-Service aufruft.
- Business-Service: Konkrete Implementierung der Geschäftslogik.
Anwendungsbeispiel
- Web-Anwendung: Die Web-Schicht fungiert als Präsentationsschicht und greift über den Business Delegate auf die Backend-Service-Schicht zu.
Vorteile
- Präsentationsschicht von der Geschäftslogikschicht entkoppeln: Der Business Delegate fungiert als Zwischenschicht, um die Kopplung zu reduzieren.
- Zentralisierte Zugriffslogik: Vereinfachen Sie den Code der Präsentationsschicht, indem Sie die Zugriffslogik im Business Delegate zentralisieren.
- Einfach zu warten und zu erweitern: Wenn ein neuer Zugriff auf die Geschäftslogik hinzugefügt wird, muss nur der Business Delegate geändert werden.
Nachteile
- Kann die Komplexität erhöhen: Bei einfachen Anwendungen kann es unnötige Abstraktionsebenen hinzufügen.
Verwendungshinweise
- Wenn Sie mehrschichtige Anwendungen entwickeln und eine klare Trennung zwischen der Präsentationsschicht und der Geschäftslogikschicht bereitstellen müssen, sollten Sie das Business Delegate Pattern in Betracht ziehen.
Hinweise
- Der Business Delegate sollte so prägnant wie möglich sein und keine komplexe Logik enthalten.
Mehrere Hauptrollen sind beteiligt
-
Business-Delegate-Schnittstelle:
- Methoden für den Zugriff auf die Geschäftslogik deklarieren.
-
Business-Delegate-Implementierung:
- Die Business-Delegate-Schnittstelle implementieren und Aufrufe an Business-Services kapseln.
-
Business-Service:
- Die Schnittstelle oder Klasse der Geschäftslogikschicht, die die eigentlichen Geschäftsvorgänge enthält.
-
Präsentationsschicht:
- Das Frontend der Anwendung greift über den Business Delegate auf die Geschäftslogik zu.
-
Geschäftslogikschicht (Business Logic Layer):
- Enthält die zentrale Geschäftslogik der Anwendung.
Das Business-Delegate-Muster bietet eine Abstraktionsschicht für den Zugriff auf die Geschäftslogik und hilft, die Flexibilität und Wartbarkeit der Anwendung zu erhalten.
Implementierung
Wir werdenClient、BusinessDelegate、BusinessService、LookUpService、JMSService erstellenundEJBServiceum die verschiedenen Entitäten im Business-Delegate-Muster darzustellen.
BusinessDelegatePatternDemoKlassenverwendungBusinessDelegateundClientUm die Verwendung des Business-Delegate-Musters zu demonstrieren.
Schritt 1
Erstellen Sie die BusinessService-Schnittstelle.
BusinessService.java
Schritt 2
Erstellen Sie eine Entity-Service-Klasse.
EJBService.java
JMSService.java
Schritt 3
Erstellen Sie einen Business-Query-Service.
BusinessLookUp.java
Schritt 4
Erstellen Sie den Business Delegate.
BusinessDelegate.java
Schritt 5
Erstellen Sie den Client.
Client.java
Schritt 6
Verwenden Sie die Klassen BusinessDelegate und Client, um das Business-Delegate-Muster zu demonstrieren.
BusinessDelegatePatternDemo.java
Schritt 7
Führen Sie das Programm aus und geben Sie die Ergebnisse aus:
Processing task by invoking EJB Service Processing task by invoking JMS ServiceWeitere Erweiterungen