ç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.
"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.
Lorsque vous utilisez ce modèle, utilisez-le dans les cas suivants.
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. ..
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.
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.
Le code implémenté ci-dessous est disponible. Implémenté en Python 3.7. https://github.com/sirajirasajiki/design_pattern_python/tree/master/Prototype
Vous avez découvert le modèle Prototype consistant à créer une autre instance à partir d'une instance existante.
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.
S'il y a quelque chose qui ne va pas, je vous serais reconnaissant de bien vouloir le signaler!
appendix
Recommended Posts