J'ai une solution où je passe une collection d'éléments d'une source à un présentateur. Lorsque la source est mise à jour, je veux être en mesure d'informer le présentateur pour montrer le nouveau résultat. Ce qui vient à l'esprit est de créer une classe ChangeNotification, de la transmettre avec le résultat et de faire en sorte que cette classe informe le présentateur. Maintenant, comme je le vois, ceci peut être implémenté de deux manières, soit ChangeNotification peut avoir des événements auxquels le présentateur est abonné, ou il peut avoir des délégués que le présentateur définit et les appels source s'il n'est pas nul. L'avantage d'utiliser les événements est que plus que le consommateur peut réagir à la notification et que vous pouvez y connecter des extensions réactives, l'inconvénient est que vous devez gérer l'abonnement/désabonnement des événements pour un nettoyage correct. Les délégués sont simples mais vous perdez de la flexibilité.Meilleur modèle pour la notification de modification (événements ou délégués)
Quel est le motif le plus élégant pour une situation comme celle-ci? Y a-t-il un autre moyen auquel je n'ai pas pensé?
Pour développer, si vous implémentez INotifyPropertyChanged, votre classe sera prête à créer une base de données vers de nombreux contrôles WindowsForms ou WPF lorsqu'ils sont contenus dans une IBindingList ou une ObservableCollection.Les délégués ne permettront pas cela sans travail supplémentaire – cordialgerm
Merci pour votre réponse, ce sont des collections sont utiles si vous travaillez principalement avec des formulaires wpf/windows. Je suis plus intéressé par le modèle sous-jacent en général, même si – Homde
ce sont des implémentations spécifiques du modèle de conception "observateur" ... et bien que vous obteniez des mises à jour gratuites aux contrôles auxquels vous vous liez dans Winforms et WPF, ils restent extrêmement utiles situations non-UI. – tbischel