Fermer

novembre 7, 2019

Modèles de conception en JavaScript


Les modèles de conception sont des solutions documentées aux problèmes courants du génie logiciel. Les ingénieurs n'ont pas à se préoccuper des problèmes que quelqu'un d'autre a déjà résolus.

Un beau jour, j'ai décidé de résoudre ce bogue en attente depuis assez longtemps – Plusieurs instances de la référence IndexedDB sont en cours de création . Si vous vous demandez ce qu'est IndexedDB, il s'agit d'un magasin de données clé-valeur persistante côté client, couramment utilisé dans Applications Web progressives pour un accès plus rapide aux données.

Avec le contexte IndexedDB en place, obtenons Retour au bogue – Je dois en quelque sorte empêcher la création de plusieurs instances de IndexedDB. Il ne doit être initialisé qu'une fois, et toute autre tentative de réinitialisation de l'instance IndexedDB ne devrait pas aboutir et devrait renvoyer la référence existante.

Pendant que je murmurais ceci et que je regardais patiemment mon éditeur pour obtenir des indices sur l'existant Code, un de mes collègues a jailli, "Utilisez juste un singleton!" Hein, qu'est-ce qu'un singleton? Elle a expliqué en disant, créer une variable globale pour stocker la référence IndexedDB et, sur chaque demande, il suffit de vérifier si cette variable globale est déjà initialisée. Si la variable est déjà initialisée, retournez-la simplement. sinon, créez son instance et stockez-la dans la variable globale avant de renvoyer .

J'ai soutenu: «Compris! Mais pourquoi s'appelle-t-il singleton et qui l'a nommé? »Elle a expliqué:« Singleton est l'un des modèles de conception du paradigme orienté objet et cela signifie simplement qu'une classe ne peut être instanciée qu'une seule fois. C'est un modèle courant qui peut être réutilisé pour résoudre des problèmes de cette nature. ”Le terme Design Patterns m'a rendu curieux et j'ai commencé à chercher à ce sujet sur Internet!

Que sont les modèles de conception? [19659007] Les modèles de conception sont des solutions documentées aux problèmes courants du génie logiciel. Les ingénieurs n’ont pas à se préoccuper des problèmes déjà résolus par un tiers.

Lors de la rédaction du code, les utilisateurs ont constaté qu’on passait beaucoup de temps à réfléchir à des solutions aux problèmes courants. Il n'y a pas qu'un seul moyen de résoudre ces problèmes. Les ingénieurs intelligents ont commencé à trouver des solutions à ces problèmes courants et ont documenté ces problèmes et les moyens efficaces pour les résoudre. Le livre Modèles de conception: éléments d'un logiciel orienté objet réutilisable également appelé livre GoF (Gang of Four écrit par quatre rédacteurs), décrit 23 modèles de conception de logiciel classiques et constitue un trésor pour tous les aspirants. ingénieur logiciel là-bas!

Les “modèles de conception” sont courants dans la plupart des conversations d’ingénierie. Les gens n’ont pas besoin de passer du temps à expliquer encore et encore le même problème – il existe un terme pour chacun de ces problèmes! Le livre explique principalement les modèles de conception dans le contexte de langages orientés objet tels que C ++ et Java, et toutes ses solutions sont en C ++.

JavaScript guy? Ne vous inquiétez pas! Le problème et l'intention de la plupart de ces modèles sont également applicables en JavaScript. Et la bonne nouvelle est que nous avons un livre concret à suivre et à apprendre tous ces modèles en JavaScript! Addy Osmani nous a couverts. Il a écrit le livre Learning JavaScript Design Patterns et c’est le livre le plus populaire pour devenir un expert dans l’utilisation des modèles de design en JavaScript. Je recommande fortement de lire ce livre incroyable. Mais si vous recherchez un guide rapide sur les modèles de conception les plus couramment utilisés en JavaScript, cet article est le lieu idéal pour commencer!

Maintenant que vous savez que les modèles de conception sont courants dans la plupart des conversations techniques, il est logique connaître ces termes pour accélérer les cycles de développement de produits. Commençons!

Catégories de modèles de conception

Les modèles de conception sont divisés en plusieurs catégories, mais les plus courantes sont Creational Structural et Behavioral . Voici un bref aperçu de ces trois catégories:

 Schémas de conception image 1

Accrochez-vous! Nous allons apprendre certains des modèles de conception de chacune des catégories. Commençons par mieux comprendre les modèles de conception créatifs.

Modèles de conception créatifs

Les modèles de conception créatifs traitent de divers mécanismes de création d’objets. Ces mécanismes facilitent la réutilisation du code existant et aident à l'écriture de code évolutif et flexible.

Les modèles de conception créatifs abstraits de la logique complexe de création d'objets à partir du client et fournissent une interface plus claire pour résoudre des problèmes particuliers. Certains problèmes d’ingénierie peuvent vous obliger à n’avoir qu’une seule instance d’une classe. Ne cherchez plus et utilisez Singleton! Le modèle de conception prototype vous permet de créer des clones d'objets, tandis que le modèle de générateur vous permet de créer des objets complexes, étape par étape. Commençons par le modèle le plus simple, le modèle constructeur.

Modèle de conception du constructeur

La méthode du constructeur devrait être une évidence si vous venez d’un fond classique orienté objet. La méthode constructeur est appelée à chaque fois que nous créons un objet d'une classe. Ici, la classe représente une entité, quelque chose comme Car Person etc. Une classe contient les propriétés et méthodes des membres et chacun de ses objets possède sa propre copie de ces propriétés mais partage la même méthode définitions.

Voici un simple classe Pokemon écrite en TypeScript:

 classe   Pokemon   {
    nom : chaîne
    baseExperience : nombre
    capacités : chaîne []

constructeur ( nom : chaîne baseExperience : numéro capacités : chaîne [] ) {
cette . nom




Source link