Lange nicht gesehen. Es ist weiß. Neulich kennen leitende Ingenieure das Entwurfsmuster nicht! ?? Danach erhielt ich eine "Einführung in Designmuster, die in Java gelernt wurden", geschrieben von Hiroshi Yuki, und entschied mich zu studieren. Selbst wenn ich das Buch lese, kann ich mich nicht daran erinnern, deshalb habe ich beschlossen, es als Memorandum zu schreiben. Dies ist das 6. Mal. Ich werde mein Bestes geben, damit ich das Rennen beenden kann. Darüber hinaus gibt es ein Beispielprogramm in "Einführung in in Java-Sprache erlernte Entwurfsmuster", das wir jedoch aus urheberrechtlichen Gründen weglassen werden. Bitte verstehe.
Letztes Mal habe ich einen Artikel über "Singleton-Muster" geschrieben. Der vorherige Artikel ist unten. https://qiita.com/sirajirasajiki/items/532d33fd823e52ab0d1a
Dieses Mal möchte ich das "Prototypmuster" beschreiben. Darüber hinaus gibt es ein Beispielprogramm in "Einführung in in Java-Sprache erlernte Entwurfsmuster", das wir jedoch aus urheberrechtlichen Gründen weglassen werden. Bitte verstehe.
"Einführung in in Java gelernte Entwurfsmuster"
"Prototypmuster", das aus einer Instanz eine andere Instanz erstellt
Es gab eine Beschreibung. Dieses Prototypmuster dupliziert eine vorhandene Instanz, um eine neue zu erstellen.
Wenn Sie dieses Muster verwenden, verwenden Sie es in den folgenden Fällen.
2 zeigt an, dass es schwierig ist, eine Instanz zu erstellen, wenn eine neue Instanz nicht aus einer Klasse erstellt werden kann, z. B. eine vom Benutzer mit einer Malanwendung erstellte Bildinstanz oder eine vom Benutzer mit einem Modellierungswerkzeug erstellte Modellinstanz. ..
Betrachten wir diesmal die in "Einführung in Java-Sprache erlernte Entwurfsmuster" beschriebene, die eine Zeichenfolge mit Zeichen einschließt oder die Zeichenfolge mit einem bestimmten Zeichen unterstreicht. Eine Klasse, die Zeichen enthält, und eine Klasse, die eine Zeichenfolge mit einem bestimmten Zeichen unterstreicht, wird von einer Klasse namens Manager verwaltet.
Dieses Klassendiagramm wird als PlantUML bezeichnet. Der PlantUML-Code, den ich geschrieben habe, befindet sich auf dem GitHub unten. Lesen Sie daher bitte Read Me, bevor Sie ihn verwenden. Es ist singleton.txt. https://github.com/sirajirasajiki/design_pattern_uml/tree/master/prototype Einzelheiten zur Installation und Verwendung von PlantUML finden Sie im Anhang unten.
Der unten implementierte Code ist verfügbar. Implementiert in Python 3.7. https://github.com/sirajirasajiki/design_pattern_python/tree/master/Prototype
Sie haben das Prototypmuster zum Erstellen einer anderen Instanz aus einer vorhandenen Instanz kennengelernt.
Persönlich habe ich mich gefragt, ob das Prototypmuster verwendet werden würde, wenn komplexe Berechnungen mit mehreren Mustern durchgeführt werden. Angenommen, Sie haben eine Klasse, die numerische Berechnungen durchführt, und Sie haben eine Instanz X, die diese Klasse erbt. Wenn ich den Wert berechnen möchte, den Instanz X in beiden Fällen A und B hat, ist es schwierig, ihn zweimal zu berechnen, sodass es einfacher ist, ihn zu kopieren. Daher fand ich diese Idee praktisch.
~~ Ich werde zu einem späteren Zeitpunkt ein gutes Beispiel machen und es in Python implementieren. ~~ Ich konnte mir kein Beispiel vorstellen, also schrieb ich es in Python anhand des Beispiels im Buch.
Wenn Sie etwas falsch finden, würde ich es begrüßen, wenn Sie darauf hinweisen könnten!
appendix
Recommended Posts