Eine grundlegende Implementierung des Mediator-Entwurfsmusters, das zur Förderung der Entkopplung zwischen verschiedenen Systemen verwendet wird, wie hier beschrieben.
Erstellen Sie beim ersten Start Ihrer Anwendung eine Instanz der MessageService-Klasse. Fügen Sie dann beim Erstellen Ihrer Systeme die MessageService-Instanz als Abhängigkeit ein. Systeme können dann einen bestimmten Nachrichtentyp abonnieren, indem sie einen Funktionsrückruf und den Nachrichtentyp bereitstellen:
_messageService . Subscribe ( ApplicationStarted , MessageType . ApplicationStarted ) ;Um Nachrichten zwischen Systemen zu senden, müssen Sie lediglich eine IMessage an den MessageService senden:
_messageService . SendMessage ( new EmptyMessage ( MessageType . ApplicationStarted ) ) ;In der Rückruffunktion eines abonnierten Systems kann die IMessage in jeden Datentyp umgewandelt werden, den Ihr System benötigt:
private void ReceiveStringMessage ( IMessage obj )
{
StringMessage msg = ( StringMessage ) obj ;
Debug . Log ( "Receive message: " + msg . String )
}Zusätzliche Nachrichtentypen können erstellt werden, indem weitere Werte in der MessageType-Enumeration definiert werden und auch Klassen erstellt werden, die von IMessage erben.