J'ai décidé d'écrire un modèle de conception en Python dans un laboratoire universitaire. Cependant, même si je ne comprenais pas correctement le modèle de conception, je sentais que je ne pouvais pas l'écrire en Python. Alors, comparons et comprenons les modèles de conception de Java et de votre JavaScript préféré. Si vous écrivez tous les modèles de cet article, ce sera long, je vais donc créer un article pour chaque modèle et remplir le tableau ci-dessous.
La douane doit résoudre les problèmes courants de conception de logiciels et les rendre réutilisables 23 types de modèles de conception GoF (Gang of Four) sont célèbres GoF est «Erich Gamma» «Richard Helm» «Ralph Johnson» «John Brisidis» Introduction du terme modèle de conception dans le développement logiciel pour la première fois dans "Modèle de conception pour réutilisation dans l'orientation objet"
Les modèles de conception peuvent être classés selon différentes perspectives
** Résolvez le problème en vous concentrant sur le mécanisme de création d'objets et de contrôle du processus de création d'objets **
Nom du motif | Aperçu |
---|---|
Factory Method | Créer une instance d'une classe dérivée basée sur les données et les événements passés |
Abstract Factory | Créer une instance d'une classe sans révéler les détails de la classe concrète |
Builder | Séparez le processus de création d'un objet du formulaire de représentation. Créez toujours le même type d'objet |
Prototype | Utiliser une instance entièrement initialisée lors de la copie |
Singleton | Une classe avec une seule instance accessible globalement |
** Il s'agit de synthétiser des objets et est utilisé pour faciliter la compréhension des relations entre différents objets **
Nom du motif | Aperçu |
---|---|
Adapter | Faites correspondre les interfaces de différentes classes afin que même les classes qui ne prennent pas en charge les interfaces puissent être utilisées en combinaison. |
Bridge | Détachez l'interface de l'objet de l'implémentation, permettant à l'interface et l'implémentation d'être modifiées indépendamment |
Composite | En traitant uniformément la structure des objets individuels et des composites d'objets, vous pouvez faire plus que les traiter séparément. |
Decorator | Ajouter dynamiquement un traitement à un objet |
Facade | Une classe cache la complexité de l'ensemble du sous-système |
Flyweight | Utilisez des instances de petite taille pour partager efficacement les informations utilisées partout |
Proxy | Objet de substitution pour remplacer l'objet réel |
** Axé sur l'amélioration et la simplification de la communication entre les différents objets du système **
Nom du motif | Aperçu |
---|---|
Interpreter | Ajoutez des éléments linguistiques à votre application pour s'adapter à la grammaire de la langue cible |
Template Method | Créez un morceau de l'algorithme dans la méthode et retardez l'étape vers la sous-classe |
Chain of Responsibility | Comment passer des demandes en séquence dans une série d'objets et trouver un objet capable de gérer cet élément |
Command | Séparer l'opération d'exécution de commande de la position d'émission de la commande |
Iterator | Accéder aux éléments de la collection en séquence sans connaître le comportement interne de la collection |
Mediator | Simplifiez les interactions entre les classes et empêchez les classes de se référencer directement les unes les autres |
Memento | Enregistrer l'état interne de l'objet afin qu'il puisse être restauré plus tard |
Observer | Comment notifier de nombreuses classes de modifications et assurer la cohérence entre les classes |
State | Changer le comportement d'un objet lorsque l'état change~ |
Strategy | Encapsule les algorithmes dans une classe et rend la sélection de l'algorithme indépendante de l'implémentation de la classe |
Visitor | Ajouter une nouvelle opération à une classe sans la modifier |
[Introduction aux modèles de conception appris dans le langage Java augmenté et révisé](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82% E7% 89% 88Java% E8% A8% 80% E8% AA% 9E% E3% 81% A7% E5% AD% A6% E3% 81% B6% E3% 83% 87% E3% 82% B6% E3% 82% A4% E3% 83% B3% E3% 83% 91% E3% 82% BF% E3% 83% BC% E3% 83% B3% E5% 85% A5% E9% 96% 80-% E7% B5 % 90% E5% 9F% 8E-% E6% B5% A9 / dp / 4797327030) Modèle de conception JavaScript
Recommended Posts