A classe MessagingCenter implementa o padrão Publish-Subscribe, permitindo a comunicação baseada em mensagens entre componentes com baixo acoplamento. Esse mecanismo permite que publicadores e assinantes se comuniquem sem ter uma referência direta um ao outro, ajudando a reduzir as dependências entre os componentes, além de permitir que os componentes sejam desenvolvidos e testados de forma independente. Aclasse MessagingCenter fornece a funcionalidade de publicação/assinatura multicast. Isso significa que pode haver vários publicadores que publicam uma única mensagem e vários assinantes ouvindo a mesma mensagem. A imagem abaixo ilustra essa relação:
Os publicadores enviam mensagens usando ométodo MessagingCenter.Send , enquanto os assinantes escutam as mensagens usando ométodo MessagingCenter.Subscribe . Além disso, os assinantes também podem cancelar assinaturas de mensagens, se necessário, com ométodo MessagingCenter.Unsubscribe . Internamente, aclasse MessagingCenter usa referências fracas. Isso significa que ele não manterá os objetos "vivos" e permitirá que eles sejam coletados como lixo. Portanto, só deve ser necessário cancelar a assinatura de uma mensagem quando uma classe não deseja mais recebe-la. Informações |
---|
Embora aclasse MessagingCenter permita a comunicação entre classes fracamente acopladas, ela não oferece uma única solução de arquitetura para esse problema. Por exemplo, a comunicação entre um ViewModel e uma View também pode ser obtida pelo mecanismo de Binding e por meio de notificações de alteração de propriedade (NotifyPropertyChanged). Além disso, a comunicação entre dois ViewModels também pode ser obtida passando dados durante a navegação. |
|