[PYTHON] Résumé des modèles de prototypes d'introduction aux modèles de conception appris en langage Java

ça fait longtemps. C'est blanc. L'autre jour, les ingénieurs seniors ne connaissent pas le modèle de conception! ?? Après cela, j'ai reçu une "Introduction aux modèles de conception appris en langage Java" écrite par Hiroshi Yuki, alors j'ai décidé d'étudier. Cependant, même si j'ai lu le livre, je ne m'en souviens pas, alors j'ai décidé de l'écrire sous forme de mémorandum. C'est la 6ème fois. Je ferai de mon mieux pour pouvoir terminer la course. De plus, il existe un exemple de programme dans "Introduction aux modèles de conception appris en langage Java", mais nous l'omettons pour des raisons de droits d'auteur. Essaye de comprendre.

La dernière fois, j'ai écrit un article sur "Singleton pattern". L'article précédent est ci-dessous. https://qiita.com/sirajirasajiki/items/532d33fd823e52ab0d1a

Cette fois, je voudrais décrire le "modèle de prototype". De plus, il existe un exemple de programme dans "Introduction aux modèles de conception appris en langage Java", mais nous l'omettons pour des raisons de droits d'auteur. Essaye de comprendre.

Chapitre 6 Modèles de prototypes - Copie et instance

"Introduction aux modèles de conception appris en langage Java"

"Modèle de prototype" qui crée une autre instance à partir d'une instance

Il y avait une description. Ce modèle de prototype duplique une instance existante pour en créer une nouvelle.

Utilisation du modèle de prototype

Lorsque vous utilisez ce modèle, utilisez-le dans les cas suivants.

  1. Trop de types d'objets
  2. S'il est difficile de créer une nouvelle instance à partir de la classe
  3. Si vous souhaitez séparer le framework de l'instance générée

2 indique qu'il est difficile de créer une instance lorsqu'une nouvelle instance ne peut pas être créée à partir d'une classe, telle qu'une instance d'image créée par l'utilisateur avec une application de peinture ou une instance de modèle créée par l'utilisateur avec un outil de modélisation. ..

Précautions lors de l'utilisation du modèle Prototype

Exemple utilisant Prototype

Cette fois, considérons celui décrit dans "Introduction aux modèles de conception appris en langage Java" qui entoure une chaîne de caractères avec des caractères ou souligne la chaîne de caractères avec un caractère spécifique. Une classe qui englobe des caractères et une classe qui souligne une chaîne de caractères avec un caractère spécifique est gérée par une classe appelée Manager.

Diagramme de classe

prototype.png

Ce diagramme de classes est décrit comme PlantUML. Le code PlantUML que j'ai écrit se trouve sur le GitHub ci-dessous, veuillez donc lire Lisez-moi avant de l'utiliser. C'est singleton.txt. https://github.com/sirajirasajiki/design_pattern_uml/tree/master/prototype Pour plus de détails sur l'installation et l'utilisation de PlantUML, voir l'annexe ci-dessous.

Implémenté en Python sur la base du diagramme de classes

Le code implémenté ci-dessous est disponible. Implémenté en Python 3.7. https://github.com/sirajirasajiki/design_pattern_python/tree/master/Prototype

Résumé

Vous avez découvert le modèle Prototype consistant à créer une autre instance à partir d'une instance existante.

Chapitre 6 Impressions

Personnellement, je me suis demandé si le modèle Prototype serait utilisé lors de calculs complexes avec plusieurs modèles. Par exemple, supposons que vous ayez une classe qui effectue des calculs numériques et que vous ayez une instance X qui hérite de cette classe. Lorsque je veux calculer la valeur de l'instance X dans les deux cas A et B, il est difficile de la calculer deux fois, il est donc plus facile de la copier, j'ai donc pensé que cette idée était pratique.

~~ Je vais faire un bon exemple à une date ultérieure et l'implémenter en Python. ~~ Je ne pouvais pas penser à un exemple, alors je l'ai écrit en Python en utilisant l'exemple du livre.

finalement

S'il y a quelque chose qui ne va pas, je vous serais reconnaissant de bien vouloir le signaler!

appendix

Recommended Posts

Résumé des modèles de prototypes d'introduction aux modèles de conception appris en langage Java
Résumé des modèles singleton de l'introduction aux modèles de conception appris en langage Java
Résumé du chapitre 2 de l'introduction aux modèles de conception appris en langage Java
Chapitre 4 Résumé de l'introduction aux modèles de conception appris en langage Java
Résumé du chapitre 3 de l'introduction aux modèles de conception appris en langage Java
Résumé du début au chapitre 1 de l'introduction aux modèles de conception appris en langage Java
[Mis à jour de temps en temps] Résumé des modèles de conception en Java
Modèles de conception appris avec Java et PHP (résumé)
Modèle de prototype en Java
Modèles de conception en Python: introduction
Résumé des différentes opérations dans Tensorflow
Modèle de chaîne de responsabilité en Java
Résumé du modèle de conception Java GoF
Résumé du traitement multi-processus du langage de script
Apprenez le modèle de conception "Prototype" avec Python
Résumé des méthodes fréquemment utilisées chez les pandas
Résumé des commandes fréquemment utilisées dans matplotlib
Résumé de diverses instructions for en Python
Résumé des pages d'hébergement de la bibliothèque par langue
[Gang of Four] Apprentissage des modèles de conception - Prototype
Modèles Gang of Four (GoF) en Python
Résumé des pierres d'achoppement lors de l'installation de CaboCha
Séparation de la conception et des données dans matplotlib
Résumé des modules et des classes dans Python-TensorFlow2-
Résumé des méthodes intégrées, etc. de la liste Python