Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Dica
titleBranch de Referência

Compare pub_sub com validation

Painel
titleIntrodução

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.

...