Utiliser le Singleton pour gérer les notifications de l’application

Si vous n’êtes pas familier avec le Singleton, n’hésitez pas à aller jeter un coup d’œil sur l’article qui y est consacré sur mon blog : DESIGN PATTERN : SINGLETON

Pour cette exemple nous allons créer une nouvelle solution WPF application, avec deux vues, la VueParent qui affiche la notification avec un TextBlock (et qui contient également la vue enfant) et la VueEnfant avec un bouton qui envoi une notification.
Nous allons également créer la classe SingletonNotification qui contiendra le Singleton et le code pour gérer la notification.

VueParent et VueEnfant

VueParent et VueEnfant

SingletonNotification

Nous allons commencer par créer la classe du Singleton avec le code pour gérer la notification.

Pour gérer la notification nous avons, un TextBlock en private, un setter pour qui ne permet de l’ajouter qu’une seule fois et la méthode qui sera utilisée pour envoyer la notification (Notez que je n’ai fais que le code de base sans vérification des valeurs par soucis de lisibilité)

VueParent

Dans la vue parent nous avons un simple Grid avec deux lignes avec sur la première la vue enfant et sur la deuxième le TextBlock qui affichera la notification. Mais nous avons surtout l’événement Loaded déclaré dans la balise de l’UserControl qui permettra de récupérer le TextBlock. (je n’ai pas affiché le code XAML de la vue car il est très simple et en plus je met à disposition la solution complète en bas de page)

Au démarrage de l’application, au moment où la vue parent est instanciée (Événement Loaded), nous allons venir chercher l’endroit où afficher la notification (ici un TextBlock) et le sauvegarder dans le Singleton.

VueEnfant

Dans la vue enfant nous avons un simple bouton avec l’événement Click qui se chargera d’envoyer un texte de notification.

La destination de la notification étant enregistrée, nous n’avons plus qu’à l’appeler pour afficher notre message et le tour est joué.

Voici un .zip contenant la solution de l’exemple complet : SingletonEtNotification

Évidement l’exemple que j’explique ici est très simple, et nous n’avons pas besoin de Singleton, mais dans le cadre de mon travail il m’est souvent arrivé que j’ai beaucoup de vues imbriquées et pour éviter d’avoir énormément d’endroit différent selon la vue pour afficher les notifications, j’ai choisi de ne les envoyés qu’à un seul endroit de ma vue parent.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *