Базовая реализация шаблона проектирования «Посредник», которая используется для обеспечения разделения между различными системами, как описано здесь.
Создайте экземпляр класса MessageService при первом запуске приложения. Затем при создании систем добавьте экземпляр MessageService в качестве зависимости. Затем системы могут подписаться на определенный тип сообщения, предоставив обратный вызов функции и тип сообщения:
_messageService . Subscribe ( ApplicationStarted , MessageType . ApplicationStarted ) ;Чтобы отправлять сообщения между системами, вам просто нужно отправить IMessage в MessageService:
_messageService . SendMessage ( new EmptyMessage ( MessageType . ApplicationStarted ) ) ;В функции обратного вызова подписанной системы IMessage можно преобразовать к любому типу данных, который требуется вашей системе:
private void ReceiveStringMessage ( IMessage obj )
{
StringMessage msg = ( StringMessage ) obj ;
Debug . Log ( "Receive message: " + msg . String )
}Дополнительные типы сообщений можно создать, определив дополнительные значения в перечислении MessageType, а также создав классы, наследующие от IMessage.