[Java] Résumé des modèles de conception

Objectif J'ai appris les 23 modèles de conception Java, je vais donc les écrire sous forme de mémorandum. Cet article donne un aperçu de tous les modèles de conception.

Qu'est-ce qu'un modèle de conception? Une collection de modèles de conception de classe typiques conçus pour une conception plus efficace et polyvalente. Non seulement il est hautement réutilisable et donne une meilleure vue de l'ensemble du code, mais il minimise également l'étendue de l'impact pendant la maintenance.

Types de modèles de conception Le modèle de conception est ・ Génération d'objets ・ Structure du programme ・ Comportement des objets Il est grossièrement classé en trois modèles.

Création d'objets Une liste et un aperçu des modèles pour la création d'objets. Tous les 5 types.
Nom du motif Aperçu
Méthode d'usine Générez plusieurs sous-classes par paire.
Abstract Factory Une classe spécialisée dans la méthode d'usine.
Builder Divisez le constructeur en une classe de générateur et une classe de directeur, et créez un objet de valeur initiale complexe.
Prototype Le regroupement de clones simplifie la création d'objets.
Singleton Assurez-vous qu'un seul objet de cette classe est créé entre le démarrage et l'arrêt du système.

Structure du programme Une liste et un aperçu des modèles liés à la structure du programme. Les 7 types.
Nom du motif Aperçu
Adaptateur Vous pouvez ajouter la méthode appropriée sans modifier la classe existante.
Bridge Pour deux classes fortement liées, étendez-les en héritant de chaque classe afin qu'il n'y ait aucun effet.
Composite Une série d'opérations peut être facilement exécutée en ayant une interface commune pour tous les objets dans une structure hiérarchique.
Decoraror En implémentant une interface commune, vous pouvez ajouter plus de fonctionnalités que l'héritage de classe.
Façade En regroupant des objets d'une classe très polyvalente, il est facile de les partager entre les développeurs.
Flyweight En regroupant les objets créés, la charge requise pour créer et conserver les objets peut être réduite.
Proxy En ayant une interface commune, accrochez-la lorsqu'une méthode est appelée et ajoutez un traitement. Similaire à Decorator.

Comportement des objets Une liste et un résumé des modèles liés au comportement des objets. Tous les 11 types.
Nom du motif Aperçu
Chaîne de responsabilité Selon le type de requête (valeur de l'argument), un objet approprié est sélectionné parmi plusieurs objets et traité.
Commande Le traitement de la demande lui-même est transformé en objet, et une demande au contenu compliqué est envoyée.
Interpréteur Puisque l'interpréteur peut être exécuté en utilisant la structure d'objet obtenue à la suite de l'analyse syntaxique telle quelle, il est facile d'étendre la syntaxe.
Iterator L'interface Iterator facilite l'accès quelle que soit la structure des objets.
Médiateur Vous pouvez facilement modifier le contenu de l'interaction et ajouter des objets pièce.
Mémento Vous pouvez prendre un instantané de l'état d'un objet à un moment donné, l'enregistrer et l'utiliser pour restaurer son état d'origine.
Observateur Vous pouvez facilement changer ou augmenter la classe à vérifier et la classe à vérifier.
State Même si l'état change de manière compliquée, le contenu de traitement peut être commuté simplement, et la visibilité de la transition d'état dans le code est améliorée.
Stratégie Vous pouvez facilement changer l'algorithme utilisé dans le programme pendant son exécution.
Méthode modèle Un grand processus est décomposé en plusieurs étapes et le contenu du processus est modifié pour chaque étape tout en respectant l'ordre d'exécution des étapes.
Visiteur Même si plusieurs types de classes sont mélangés dans l'ensemble d'objets, le traitement peut être ajouté sans modifier ces classes.

Enfin Le modèle de conception est très excellent en termes de réutilisabilité et de maintenabilité, mais si vous essayez de l'appliquer de force au modèle de conception, cela peut entraîner un code complexe.

Recommended Posts

[Java] Résumé des modèles de conception
Modèles de conception Java
Résumé du support Java 2018
Résumé du modèle de conception Java
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 10)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 7)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 3)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 6)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (Partie 5)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 2)
Résumé de «Modèles de conception appris en langage Java (édition multi-thread)» (Partie 1)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 11)
Résumé de «Modèles de conception appris en langage Java (édition multithread)» (partie 12)
[Java11] Résumé du flux -Avantages du flux-
[Java] Résumé des expressions régulières
[Java] Résumé des opérateurs (opérateur)
Résumé des bases du langage Java
Résumé de la classe Java Math
[Java] Résumé de la syntaxe de contrôle
Résumé du traitement des erreurs Java
[Java] Résumé des opérations mathématiques
[Pour les débutants] Résumé du constructeur java
Résumé du package [Java Silver Study]
Résumé de la programmation orientée objet utilisant Java
[Java Silver] Résumé des points de modification d'accès
Résumé de la session d’étude interne des recrues [Java]
Résumé des connaissances Java
Résumé des génériques Java
Modèle de conception Java
[java] Résumé de la gestion des caractères
Récapitulatif des modifications autres que JEP de Java10
[Java] Résumé personnel des instructions conditionnelles (basique)
Résumé du document Java 8
[Java] [Maven3] Résumé de l'utilisation de Maven3
Résumé Java des conversions de types fréquemment recherchées
Résumé du document Java 11
Résumé de Java Math.random et import (calendrier)
[java] Résumé de la gestion des chaînes de caractères
Récapitulatif des paramètres de l'environnement Java pour moi-même [mac]
[Java] Résumé personnel des classes et méthodes (basique)
[Java] Résumé de la façon d'omettre les expressions lambda
Collection expirée de java
Résumé des nouvelles fonctionnalités de Java 12
[Java] Importance de serialVersionUID
[Résumé] Par exemple, préparation de l'environnement Java
3ème résumé efficace de Java
NIO.2 examen de Java
Avis sur Java Shilber
Résumé des nouvelles fonctionnalités de Java 13
Résumé des sources OpenJDK
java --Unification des commentaires
vue d'ensemble du fichier jar
Introduction aux modèles de conception (introduction)
Java statique [Résumé personnel]
Histoire des annotations Java
Résumé sur la sécurité de l'information
Résumé de l'utilisation de FragmentArgs
java (mérites du polymorphisme)
Résumé des threads sûrs ~ Java ~