Une implémentation de base du modèle de conception Mediator utilisé pour promouvoir le découplage entre différents systèmes, comme décrit ici.
Créez une instance de la classe MessageService au premier démarrage de votre application. Ensuite, lors de la création de vos systèmes, injectez l'instance MessageService en tant que dépendance. Les systèmes peuvent ensuite s'abonner à un type de message spécifique en fournissant un rappel de fonction et le type de message :
_messageService . Subscribe ( ApplicationStarted , MessageType . ApplicationStarted ) ;
Pour envoyer des messages entre systèmes, vous devez simplement envoyer un IMessage au MessageService :
_messageService . SendMessage ( new EmptyMessage ( MessageType . ApplicationStarted ) ) ;
Dans la fonction de rappel d'un système abonné, l'IMessage peut être converti dans le type de données requis par votre système :
private void ReceiveStringMessage ( IMessage obj )
{
StringMessage msg = ( StringMessage ) obj ;
Debug . Log ( "Receive message: " + msg . String )
}
Des types de messages supplémentaires peuvent être construits en définissant plus de valeurs dans l'énumération MessageType et en créant également des classes qui héritent d'IMessage.