Maison >interface Web >js tutoriel >Singleton ou observable ? Un mauvais choix pourrait vous coûter votre promotion !
Les modèles de conception sont fondamentaux pour créer des logiciels bien structurés et faciles à entretenir. Parmi eux, Singleton et Observable sont souvent utilisés dans des scénarios qui nécessitent un contrôle d'état global et une communication entre différentes parties du système. Dans cet article, nous explorerons le fonctionnement de ces deux normes, quand les utiliser, leurs différences et fournirons des exemples pratiques sur la façon de les mettre en œuvre.
Le Singleton Pattern est un modèle de conception créationnel qui garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à cette instance. Ce modèle est utile lorsque vous avez besoin d'un seul objet dans l'ensemble de l'application, tel que les paramètres globaux, la connexion à la base de données ou la gestion des journaux.
La principale caractéristique de Singleton est qu'il restreint l'instance de classe à un seul objet, garantissant que toutes les requêtes d'instance renvoient le même objet. Pour y parvenir, le modèle utilise normalement une méthode statique qui crée l'instance uniquement lorsqu'elle est demandée pour la première fois, garantissant ainsi la création et l'utilisation uniques de l'objet dans tout le système.
Dans le diagramme ci-dessous, la séquence montre comment l'instance Singleton est créée et accessible, garantissant qu'elle est unique.
Le diagramme de séquence Singleton illustre le flux d'interaction entre le client et la classe Singleton. Le processus commence avec le client appelant la méthode statique getInstance() pour obtenir l'instance Singleton. Si l'instance n'a pas encore été créée, Singleton crée une nouvelle instance et la renvoie. Lorsque le client appelle à nouveau la méthode getInstance(), la même instance est renvoyée, garantissant qu'il n'y a qu'une seule instance de l'objet Singleton pendant toute l'exécution du programme.
class Singleton { private static instance: Singleton; private constructor() { } // Método para acessar a instância única public static getInstance(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; } public showMessage(): string { return "Esta é a única instância!"; } } // Uso do Singleton const instance1 = Singleton.getInstance(); console.log(instance1.showMessage()); // "Esta é a única instância!" const instance2 = Singleton.getInstance(); console.log(instance1 === instance2); // true
Le Modèle observable est un modèle de conception comportemental qui définit une dépendance un-à-plusieurs entre les objets. En d’autres termes, lorsque l’état d’un objet (le « sujet ») change, tous ses dépendants (les « observateurs ») sont automatiquement avertis. Ce modèle est largement utilisé dans les systèmes où les événements et les changements d'état doivent être propagés entre différents composants, tels que des interfaces graphiques ou des systèmes de surveillance.
Le modèle Observable permet aux objets « d'observer » les changements dans l'état d'un objet et de réagir à ces changements. Le modèle est basé sur trois éléments principaux :
Le diagramme de séquence observable montre comment le modèle fonctionne avec plusieurs observateurs. Le sujet (ou objet observé) informe tous les observateurs enregistrés lorsqu'un changement d'état se produit. Chaque observateur réagit à la notification en prenant les mesures nécessaires en fonction des informations reçues. Le processus de notification est propagé de manière à ce que tous les observateurs soient mis à jour simultanément, les gardant synchronisés avec l'état du sujet. Ce modèle est utile lorsque plusieurs composants ou parties du système doivent être informés des changements dans l'état d'un objet.
class Singleton { private static instance: Singleton; private constructor() { } // Método para acessar a instância única public static getInstance(): Singleton { if (!Singleton.instance) { Singleton.instance = new Singleton(); } return Singleton.instance; } public showMessage(): string { return "Esta é a única instância!"; } } // Uso do Singleton const instance1 = Singleton.getInstance(); console.log(instance1.showMessage()); // "Esta é a única instância!" const instance2 = Singleton.getInstance(); console.log(instance1 === instance2); // true
Bien que les deux modèles servent à gérer les objets de manière contrôlée, leurs objectifs et leurs comportements sont très différents :
Característica | Singleton | Observable |
---|---|---|
Objetivo | Garantir que uma classe tenha apenas uma instância. | Notificar múltiplos objetos sobre mudanças de estado. |
Instância | Apenas uma instância é criada e compartilhada. | Vários objetos podem ser observadores de um único sujeito. |
Uso principal | Gerenciamento de recursos exclusivos. | Notificação de eventos e mudanças de estado. |
Exemplo de uso | Gerenciamento de logs ou configuração global. | Atualização de interfaces gráficas ou propagação de eventos. |
Objectif
Les modèles Singleton et Observable
sont fondamentaux dans plusieurs situations de développement logiciel.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!