Musterlösung mediation

In diesem Beispiel für ein Java-Mediatormuster simulieren wir die Chat-Anwendung, in der Benutzer Nachrichten an andere Benutzer in eins zu eins senden können. Alle Benutzer müssen in der Chat-Anwendung registriert sein, um Nachrichten zu senden oder zu empfangen. Ein Beispiel, bei dem Mediator nützlich ist, ist der Entwurf einer Benutzer- und Gruppenfunktion in einem Betriebssystem. Eine Gruppe kann über null oder mehr Benutzer verfügen, und ein Benutzer kann Mitglied von null oder mehr Gruppen sein. Das Mediator-Muster bietet eine flexible und nicht-invasive Möglichkeit, Benutzer und Gruppen zu assoziieren und zu verwalten. Mit dem Muster können Sie alle Beziehungen zwischen Klassen in eine separate Klasse extrahieren und alle Änderungen an einer bestimmten Komponente von den übrigen Komponenten isolieren. Wir schrieben zuerst die ArmedUnit-Schnittstelle mit Methoden, die die implementierenden SoldierUnit- und TankUnit-Klassen (Colleague) überschreiben. In beiden Implementierensklassen haben wir einen Verweis auf das Commander-Objekt beibehalten, das wir über den Konstruktor initialisiert haben. Außerdem haben wir in beiden Klassen die in der ArmedUnit-Schnittstelle deklarierten overridden attack() und stopAttack()-Methoden implementiert. In der attack()-Methode haben wir mit dem Mediator kommuniziert, indem wir die canAttack()-Methode aufgerufen haben.

Wenn die Methode true zurückgibt, wird das Colleague-Objekt bestätigt, dass es angreifen kann. Wir haben auch eine stopAttack()-Methode geschrieben. Der Mediator ruft diese Methode auf, wenn er möchte, dass eine Einheit den Angriff beendet. Beachten Sie, dass sich die Kollegenklassen nicht kennen. Programmatisch halten wir keinen Verweis zwischen Kollegenobjekten aufrecht. Sie kommunizieren nur mit dem Mediator und der Mediator kommuniziert mit ihnen. Das ist die Essenz des Mediator-Musters. Schreiben wir einen Testcode, damit wir das Mediator-Muster in Aktion beobachten können.

Im folgenden Abschnitt werden einige reale Verwendungen des Mediator-Musters erläutert. Sie finden den Mediator in vielen Situationen, in denen es viele Komponenten gibt, die auf komplexe Weise miteinander interagieren müssen. Benutzeroberflächen Der Mediator definiert ein Objekt, das steuert, wie eine Gruppe von Objekten interagiert. Die lose Kopplung zwischen Kollegenobjekten wird dadurch erreicht, dass Kollegen mit dem Mediator kommunizieren und nicht miteinander. Der Kontrollturm eines kontrollierten Flughafens zeigt dieses Muster sehr gut. Die Piloten der Flugzeuge, die sich dem Terminalbereich nähern oder ihn verlassen, kommunizieren mit dem Tower, anstatt explizit miteinander zu kommunizieren. Die Einschränkungen, wer abheben oder landen kann, werden durch den Turm durchgesetzt. Es ist wichtig zu beachten, dass der Turm nicht den gesamten Flug kontrolliert.

Sie ist nur vorhanden, um Einschränkungen im Terminalbereich zu erzwingen. Wenn Sie verwirrt sind, denken Sie daran, dass Sie das Mediator-Muster auf andere Weise implementieren können.

Comments are closed.