Skip to content Skip to sidebar Skip to footer

Pourquoi on utilise le design pattern ?

Pourquoi on utilise le design pattern ?

C’est quoi un pattern en informatique ? En informatique, et plus particulièrement en développement logiciel, un patron de conception (souvent appelé design pattern) est un arrangement caractéristique de modules, reconnu comme bonne pratique en réponse à un problème de conception d’un logiciel. Quels sont les patrons de conception ? Les patrons de conception (design patterns) sont des solutions classiques à des problèmes récurrents de la conception de logiciels. Chaque patron est une sorte de plan ou de schéma que vous pouvez personnaliser afin de résoudre un problème récurrent dans votre code. Quelle décennie a vu naître les design patterns logiciels ? Les patrons de conception ont été formellement reconnus en 1994 à la suite de la parution du livre Design Patterns: Elements of Reusable Software, co-écrit par quatre auteurs : Gamma, Helm, Johnson et Vlissides (Gang of Four – GoF ; en français « la bande des quatre »). Quels design patterns définissent une dépendance Un-à-plusieurs entre les objets ? d) L’observateur (Observer Pattern en anglais) définit une dépendance un-à-plusieurs entre les objets où un changement d’état dans un objet entraîne la notification et la mise à jour automatique de toutes ses dépendances.9 déc. 2021 C’est quoi un singleton en Java ? En génie logiciel, le singleton est un patron de conception (design pattern), appartenant à la catégorie des patrons de création, dont l’objectif est de restreindre l’instanciation d’une classe à un seul objet.

Quel est l’intérêt du design pattern singleton ?
Pourquoi faire un singleton ?
Quelle est la différence entre un objet et une classe ?

Quel est l’intérêt du design pattern singleton ?

Définition. Le design pattern singleton « garantit qu’une classe n’a qu’une seule instance et fournit un point d’accès de type global à cette classe » d’après le GoF. Il permet d’avoir une seule instance d’une classe dans un espace et un temps donné.3 nov. 2011

Pourquoi faire un singleton ?

Son but est d’éviter qu’une classe ne crée plus d’un objet. Pour ce faire, on crée l’objet souhaité dans une classe propre, puis on le récupère sous forme d’instance statique. Le singleton est l’un des patrons les plus simples, mais les plus puissants dans le développement de logiciels.19 févr. 2021

Quelle est la différence entre un objet et une classe ?

Un objet est une instance d’une classe, qui est l’outil fondamental de programmation en Java. Une classe peut aussi être considérée comme une description de ce qu’il faut faire pour créer un objet. Les classes sont composées de méthodes et d’attributs qui peuvent être public, private ou protected.23 mars 2021


hello les a mis dans cette vidéo je vais vous montrer un des design patterns les plus puissants que j’utilise en tant que développeur professionnel et on va se retrouver tout de suite sur leur dit alors tout d’abord je dois vous faire un aveu est bien c’est que les design patterns je les ai détesté pendant des années en fait pour moi les design patterns c’était ces espèces de graff avec 70 classes et des flèches dans tous les sens et franchement ça me dégoûte et parce que personne m’expliquer réellement quoi ça allait me servir et à chaque fois que je lisais des articles sur le sujet j’avais l’impression que c’était réservé à une élite qui me regardait de là haut en dix ans ou la la qu’est ce que t’es pas intelligent tu connais pas les design patterns donc dans cette vidéo et bien j’aimerais vous partagez une discussion privée que j’avais eue avec un développeur senior et qui m’avait décoincer justement sur l’utilisation des design patterns et enfin j’ai pu voir concrètement à quoi ça servait et effectivement il faut que j’aille capter le truc c’est assez génial et je me souviens encore et bien la première fois au boulot que j’ai vu dans mon éditeur de code design patterns je comprenais même pas comment le code marché parce que c’était tellement sain qu’il y avait tellement peu de code qui faisait justement tellement de choses là où moi j’aurais dû mettre 50 if hell c’est c’est que ça m’avait impressionné et j’ai essayé de trouver où était le fichier caché qui permettait de faire tourner tout ça bref on va voir un exemple concret pour que vous aussi vous puissiez utiliser un design patterns sans partir dans des espèces d’explication des graphes hyper compliqué ce qu’on va faire plus tôt c’est de commencer par le problème ce qui pour moi la chose la plus importante parce que en fait les design patterns sont impossible à expliquer tant que vous n’avez pas eu le problème que eux résolvent donc c’est pour ça que moi je vous déconseille de vous lancer dans l’apprentissage de design patterns comme ça en soit en lisant des articles mais vraiment decaux décoder et un moment donné vous aller buter sur quelque chose et vous allez vous dire mais c’est pas possible quelques uns déjà résolu ce problème c’est sûrement qu’un design patterns derrière juste avant pour ceux qui me connaissent pas et bien je m’appelle simon j’étais un des plus jeunes formateurs javascript de france il me semble puisqu’à seulement 26 engage former des gens à atos sur les technologies angula et javascript donc pendant longtemps j’ai été développeurs juniors lambda et ce qui moi m’a servi et bien c’est de me spécialiser sur une techno est donc ici on parle d’un guy là j’ai aussi créé le site anguilard seniors point fr à côté du boulot ou je partage et bien le contenu des formations en présentiel que je crée moi-même pour aider les personnes en reconversion professionnelle et bien à voir ce qu’il ya derrière le code au delà des tuto pour pouvoir se sentir beaucoup plus légitime et en vous mettant sous les yeux du code pro bon on est parti donc ce qu’on va faire c’est partir d’un exemple de code tout bête que vous avez déjà sûrement croisé il va s’agir du de cette problématique des snacks bars donc c’est une problématique hyper simple que sûrement déjà des centaines et des milliers de gens ont déjà eu et pourtant vous allez voir que c’est un problème qui n’est pas forcément si simple à résoudre et qui surtout n’est pas forcément résolue de la bonne manière dans les projets ce que vous allez croiser donc là à l’écran que je vous ai mis un exemple de 3 snack bar qui peuvent être affichées ça a l’air assez simple pourtant en juste en voyant scott moi j’ai déjà plusieurs questions et déjà ça va être que la fnac barre a l’air d’avoir plusieurs options oui non cumul et c’est à dire par exemple est-ce que la fnac bar un titre ou non est ce qu’il ya une icône ou non est ce que la snec barre elle peut être fermées en cliquant sur la croix ou alors elles se ferment tout seul au bout de x secondes aussi je me pose la question il ya combien de types de snack bar en tout est ce qu’il ya des snacks bars d’information des snacks bars deux avertissements des snacks barbe danger des snacks bars de confirmation autre question bête mais cruciale si vous avez dans votre projet de snack bar qui sont déclenchées en même temps est ce qu’on les affiches les unes par tuer les autres ou alors est ce qu’on affiche toujours la plus récente et on écrase toutes les snacks bars qui existe déjà et là tout ce qu’on vient de faire et bien c’est uniquement des questions fonctionnel c’est à dire qu’on n’a même pas posé le problème techniquement mais déjà fonctionnellement on voit qu’il ya déjà pas mal de cas à gérer donc maintenant ce que je vous propose c’est nous pas ses côtés code comment pour encapsuler ça la solution la plus je dirais immédiate ça serait de créer une sorte d’objet ou une classe après ça comme vous voulez un endroit on va rassembler tous ces éléments de configuration possible donc on obtiendrait quelque chose comme ça un constructeur avec plusieurs propriétés qui permettent de décrire chacun des problèmes ok donc là on part sur une plaine vraiment intuitive on est parti ça comment et ça a l’air bien comme solution le problème c’est que maintenant quand on passe à l’utilisation qu’est ce qui va se passer et bien c’est que encore une fois ça me rappelle des souvenirs parce que c’était vrai problème qu’on a eu dans la vraie vie donc je peux rien cité par confidentialité mais cette problématique de snack bar elle a commencé vraiment à nous titiller car on a dû instanciés cet objet config pour déclencher l’affichage des snacks bars regardez plutôt l’objet que vous avez sous les yeux vous voulez créer une simple snack bar qui n’a pas de titre mais qui est ch’ti qui c’est à dire qu’il va rester à l’écran et qui devrait rester à peu près 3000 mises à l’écran et ce qui est marrant c’est qu’on fait quelque chose de très simple mais regardez comme le code juste pour instanciés 7 snack-bar config est confus et demande une énergie mentale juste pour comprendre exactement quel snack bar on est en train de construire est déjà là rien pour moi il ya un problème à chaque ligne puisque à chaque ligne on va devoir gérer le cas où on dit vraiment ce qu’on veut et gérer un cas un peu par défaut par exemple si on veut pas de titre qu’est ce qu’on bescond meinau title est ce qu’on met une string vidé ce qu’on met nul donc voyez à chaque ligne on a un truc un petit peu bizarre à définir mais surtout ce que je vois moi c’est dans le temps quelle est la pérennité de ce code c’est à dire que là moi j’ai créé une stagnation qui dure trois mille millisecondes mais qu’est ce qui empêche un autre développeur qui rejoint le projet plus tard par exemple est bien de chris knight bar d’information qui cette fois-ci durerait cinq secondes ou alors 2 ou 4 et donc on se retrouverait avec un comportement assez inconsistant dans le projet et surtout ce qui est très important pour moi c’est que là on a un code qui marche et c’est quelque chose que j’entends souvent c’est le code marche donc pourquoi est-ce-que ont semblé très à pousser la réflexion plus loin et c’est là où je m’énerve pas mais ça fait tilt c’est que développer du code qui marche ca fait pas de vous un développeur c’est à dire que vous prenez n’importe qui qui fait même je sais pas vos parents qui font un tuto comment créer un site web en html et dans deux heures ils ont un site qui marche pareil si vous inscrivez un cours d’informatique de débutant à la fin de la semaine vous aurez un code qui marche mais c’est là où on voit ça me fait un peu mal au coeur parce que le développement la production de code qui peut ce qui est laid c’est un vrai métier et donc faire du code qui marche c’est pour moi un peu une vision amateurs de ce qu’on peut faire il ya mieux à faire dans le code que des paquets de if health et donc pour être concret moi quand j’ai un code qui marche j’estime que j’ai fait environ 25 % du chemin parce que les 75 autres pour cent ça va être de challenge et la solution que j’aime y est ce qu’elle va durer dans le temps est ce que les autres gens de mon équipe on comprendre le nommage que j’ai choisie est ce que c’est cohérent et donc vraiment moi quand j’ai dû code qui marche c’est limite le point de départ et pas du tout la rive est d’accord et si vraiment vous chercher à devenir développeur pro voix c’est quelque chose qui m’a beaucoup aidé on a fait du code qui marche n’importe qui aurait pu faire ça d’accord à coups de if hell sifa health on peut arriver à peu près à faire tourner n’importe quoi donc ce que je vous propose maintenant ses deux challengers cette solution un petit peu bancal et donc si on réfléchit bien ce qu’on est en train de faire c’est une problématique ultra classique donc il ya certainement quelques uns déjà de plus intelligents que nous qui a résolu ce problème est fondamentalement le problème qu’on est en train de résoudre là c’est pas de créer une smac bar config le problème qu’on est en train de résoudre c’est qu’on doit créer un objet qui à cet élément dans le constructeur c’est à dire un objet qui est quand même assez complexe et ça tombe bien parce qu’il existe un design patterns qui est dans la famille il existe trois familles de design patterns construction structure comportement et le builder celui qu’on va voir maintenant c’est un des design patterns et plus puissant pour construire des objets complexes donc la première chose que je vais faire pour construire mon design patterns savez de respecter une convention de nommage qui est comme le design patterns s’appelle le design patterns builder est bien de suffixe ma classe avec builder d’accord comme ça je communique aux autres développeurs que on est en train de construire une smac bar avec le pattern builder dont concrètement design patterns c’est simplement une classe ensuite ce que je vais faire c’est que je vais prendre dans mon constructeur je vais déterminer la dent dans les sept propriétés qu’on a pour construire une synagogue bas quel est le dénominateur commun entre toutes les variations de snack bar qu’on peut construire quelle et quels sont les propriétés indispensable de l’objet le plus simple qu’on peut construire donc grosso modo dans une stack barre tout est paramétrable le type la durée ce qu’elle peut être fermer ou non il ya une propriété qui est commune à tous ça va être le message qu’on passe dans la sidebar donc première chose constructeurs et je mets le plus petit dénominateur commun la version la plus simple de l’objet que je veux créer et je vais dans le constructeur alors je sais pas si j’ai été très clair mais je pense que vous avez à peu près compris donc l’âge initialise mon message et ensuite ce que je vais faire c’est que je vais prendre toutes les autres propriétés et simplement je vais permettre à une personne qui va utiliser ce builder et bien d’initialiser sa snack bar en définissant les propriétés une par une comme une chaîne de montage la subtilité ici dans cette deuxième étape ça va être de dire quels sont les éléments que je ne veux pas permettre à l’utilisateur de modifier par exemple si je veux garantir une cohérence en disant que tout mais snack-bar d’information dans le projet elles doivent durer trois secondes je veux pas permettre à l’utilisateur de définir informations et de définir une durée parce que je vais avoir quelque chose d’un consistant donc on va voir comment faire ça tout de suite après dans la 3e étape mais ce qui est important ici c’est que je vais mettre privet sur les éléments que je veux pas exposer publiquement je veux construire des autres et complexe ici le snack bar mais je veux pas permettre à tout le monde de faire n’importe quoi parce que je veux mettre en place un code qui va tenir dans le temps et donc en réfléchissant ici les deux seules choses que je veux permettre à l’utilisateur de faire c’est de paramétrer s’il a besoin d’un titre ou non et de paramétrer s’il veut que ça sonne akbar grosso modo reste à l’écran ou soit immédiatement basque et s’il ya une note snack bar qui arrive ça je veux permettre aux autres développeurs de mon équipe et à moi aussi de le faire par contre tout le reste sage de vouloir l’ encapsulés dans des configurations spécifiques ce qui nous amène à l’étape numéro trois dans cette étape numéro 3 et bien on va rendre notre travail entre guillemets disponibles puisqu’on va permettre aux développeurs qui vont utiliser notre builder et bien d’instance y est ce fameux objet complexe snack bar donc on va l’exposer la version la plus simple de ça c’est exposer un bulbe qui tout simplement une fois qu’on aura défini toutes les étapes et bien va nous retourner une instance de snack bar mais nous on va être un cran plus malins puisqu’en fait on va rendre le bull de finale privée et on va en capsules et nos quatre configurations info success warning et danger dans des bulles de spécifique que e.on va exposer et donc là ce que vous pouvez voir c’est que la magie opère puisqu’en fait on va encapsulé nos différentes configurations possibles dans ses méthodes de bulles de finale est donc maintenant on est sûr que tout les snacks bars qui sont créées dans le projet elles sont consistante et qu’elles sont soit de type informations confirmation avertissements danger et maintenant c’est là que la magie va opérer puisqu’on va pouvoir utiliser ce builder enfin on va voir à quoi ça sert concrètement dans notre code est donc là ce qu’on a à faire c’est très simple c’est créer une nouvelle instance du builder en lui passant un paramètre la version la plus simple des objets concrets c’est à dire un message pour la snack bar ensuite on va pouvoir lui définir un certain nombre de propriétés qui sont ouvertes au paramétrage et enfin au final on va bull dès cette instance de snack bar avec les quatre méthodes de but de condat et donc ici ce que je fais c’est construire une stack barre de succès donc ce que je fais c’est que là je vous mets les deux codes que vous avez la version ça marche et puis la version ce que j’appelle seniors c’est à dire emmené le code qui marchent jusqu’à une version du code beaucoup plus efficace et qui va durer dans le temps est donc maintenant si vous mettez les deux solutions sous vos yeux je ne sais pas si comme moi ça va faire eureka ou pas mais en tout cas moi tout de suite je me suis dit waouh ok tout de suite en regardant le code on voit le niveau de précision qui est beaucoup plus avancé serre si on prend fondamentalement ce qu’on veut faire et fondamentalement comment s’est exprimé dans le code et bien il n’y a pas photo et on a vraiment la différence entre ce code qui marche et puis vraiment le code que j’appelle aux seniors c’est à dire qui même après avoir été challenge et 50 foire est probablement une des meilleures solutions qu’on peut implémenté donc voilà en tout cas grâce et bien aux patterns builder vous est maintenant capable de créer des objets complexes en décrivant réellement ce que vous voulez faire de manière ultra efficace et vous allez obtenir un code de meilleure qualité qui va mieux durer dans le temps en tout cas si vous êtes en entreprise et vous voyez un code qui ressemble un peu à celle et que vous vous demandiez ce que c’était et bien maintenant vous pourrez dire que vous avez reconnu le design patterns builder et avant de terminer je voulais quand même vous mettre en garde ne tombez pas dans le syndrome jimmy neutron à vouloir utiliser ce design patterns jour et nuit pour créer tout et n’importe quoi d’accord ça demande quand même de rajouter une nouvelle classe dans le projet il faut se rappeler que c’est design patterns sont là pour résoudre des problèmes compliqués donc vraiment n’allez pas vous inventez des problèmes dont vous n’avez pas besoin et encore une fois moi je me mets à utiliser ce design patterns vraiment quand la base de code n’est plus tenable voilà donc j’espère vous avoir réconcilié avec les design patterns en vous montrant concrètement côté code à quoi ça ressemble et surtout quel problème ça résout quand vous avez le problème est vraiment si comme moi vous étiez fhf design patterns avec ces espèces de diagrammes de 70 classes des flèches partout moi ce que je me dis à chaque fois c’est que l’idée fondamentale qui a derrière c’est que quand j’ai vraiment un problème qui m’a l’air assez compliqué il ya probablement quelqu’un qui l’a déjà mieux résolus que moi il ya des années et des années donc moi c’est l’idée que je retiens d’accord le design patterns les classes les diagrammes franchement ça m’intéresse pas du tout par contre le dire il ya déjà un gars qui a vraiment résolu ce problème de manière plus ou moins définitive et réutilisées ça ça ça m’aide beaucoup voilà donc j’espère que cette vidéo vous a été utile et que vous avez apprécié à prendre ce nouveau design patterns n’hésitez pas non plus à me dire dans les explications si c’était clair ou pas trop et puis aussi à d’autres design patterns que vous voudriez qu’on aborde sur la chaîne moi ce sera un plaisir de parler de tout ça et puis si la vidéo vous a plu et vous apporter de la valeur eh bien il ya trois manières dont je peux vous aider à devenir repro gratuitement premièrement vous pouvez vous abonner à cette chaîne je publie normalement une vidéo youtube est un défi javascript chaque semaine j’essaierai d’être plus rigoureux là dessus à partir de la rentrée deuxièmement vous pouvez interagir dans les commentaires mettre le fameux petits pouces bleus et c’est alors le but ce n’est pas de faire du réseautage sur les réseaux sociaux c’est juste que ça permet de faire grandir la chaîne donc moi ça me donne de la crédibilité et donc moi ça va pouvoir me donner de la crédibilité peut-être pour interviewer des gens qui sont un peu des pointures dans notre industrie et si je leur dis que j’ai vingt mille ou trente mille abonnés tête ils sont intéressés pour venir parler sur cette chaîne est également vous retrouver en descriptions et bien les trois stratégies j’ai appliqué pour passer de développeurs web junior lambda qui trouvait pas une mission qui trouvait pas un projet intéressant à aujourd’hui techlid sur une techno que j’ai choisi je vous présente les trois stratégies simples que j’ai appliqué et vous retrouverez tout ça en description de la vidéo en tout cas je vous souhaite vraiment bon développement ciao

Leave a comment