Mit dem Mediator-Muster wird die Kommunikation zwischen Objekten innerhalb eines Mediatorobjekts gekapselt. Objekte kommunizieren nicht mehr direkt miteinander, sondern über den Mediator. Dadurch werden die Abhängigkeiten zwischen kommunizierenden Objekten verringert, wodurch die Kopplung reduziert wird. Im Software-Engineering definiert das Mediatormuster ein Objekt, das kapselt, wie eine Gruppe von Objekten interagiert. Dieses Muster wird aufgrund der Art und Weise, wie es das Ausführungsverhalten des Programms ändern kann, als Verhaltensmuster betrachtet. Django bestimmt das zu verwendende Stamm-URLconf-Modul. Normalerweise ist dies der Wert der ROOT_URLCONF Einstellung, aber wenn das eingehende HttpRequest-Objekt über ein urlconf-Attribut (von Middleware festgelegt) verfügt, wird sein Wert anstelle der einstellung ROOT_URLCONF verwendet. Ein Chatraum kann das Mediator-Muster oder ein System verwenden, bei dem viele “Clients” jedes Mal eine Nachricht erhalten, wenn einer der anderen Clients eine Aktion ausführt (bei Chatrooms wäre dies der Fall, wenn jede Person eine Nachricht sendet). In Wirklichkeit wäre die Verwendung des Mediator-Musters für einen Chatraum nur dann praktisch, wenn es mit Remoting verwendet wird.

Die Verwendung von unformatierten Sockets würde die Delegatrückrufe nicht zulassen (Personen, die das MessageReceived-Ereignis der Mediator-Klasse abonniert haben). Für alle Zeitfehler (maximal N-Punkte für X Sekunden pro Thread), insbesondere die 503-Statuscodefehler, empfehlen wir, dass Ihr Code die Ausnahme abfängt und mit einem exponentiellen Backoff-Algorithmus auf eine kleine Verzögerung wartet, bevor Sie den fehlgeschlagenen Aufruf wiederholen. Ein Gruppeneinstellungs-API-Beispiel für einen Thread besteht darin, 5 Sekunden zu warten und den fehlgeschlagenen Aufruf erneut zu versuchen. Wenn die Anforderung erfolgreich ist, wiederholen Sie dieses Muster für die anderen Threads. Wenn die zweite Anforderung nicht erfolgreich ist, sollte Ihre Anwendung auf die Häufigkeit der Anforderung zurückskaliert werden, bis ein Aufruf erfolgreich ist. Erhöhen Sie beispielsweise die anfängliche Verzögerung von 5 Sekunden auf 10 Sekunden, und wiederholen Sie den fehlgeschlagenen Anruf erneut. Entscheiden Sie sich auch für ein Wiederholungslimit. Wiederholen Sie z. B.

eine Anforderung 5 bis 7 Mal mit unterschiedlichen Verzögerungszeiten, bevor Ihre Anwendung einen Fehler an den Benutzer zurückgibt. Die Zyklusschaltfläche in Pattern Grouping ähnlich der Zyklusschaltfläche in SmartPath. Wenn Sie auf diese Zyklusschaltfläche klicken (Pfeile, die in einem Kreis zeigen), werden die verschiedenen Muster, die in der Gruppe erstellt wurden, durchlaufen, und die Führungslinie wird zu den Benutzern die aktuelle Position generieren, wie in der Abbildung unten zu sehen. Im folgenden Beispiel steuert ein Mediator-Objekt die Werte mehrerer Speicherobjekte, die den Benutzercode zwingen, über den Mediator auf die gespeicherten Werte zuzugreifen. Wenn ein Speicherobjekt ein Ereignis aussenden möchte, das angibt, dass sich sein Wert geändert hat, geht es auch an das Mediator-Objekt zurück (über die Methode notifyObservers), das die Liste der Beobachter steuert (die mithilfe des Beobachtermusters implementiert wurden).