Posted by & filed under Uncategorized.

Im obigen UML-Klassendiagramm definiert die AbstractClass eine templateMethod()-Operation, die das Skelett (Vorlagen) eines Verhaltens durch einige der von der Vorlagenmethode gesendeten Selbstnachrichten als Hook-Methoden definiert. Diese Methoden werden in derselben Basisklasse wie die Vorlagenmethode implementiert, jedoch mit leeren Körpern (d. h. sie tun nichts). Hook-Methoden sind vorhanden, sodass Unterklassen sie überschreiben und somit die Aktion des Algorithmus optimieren können, ohne die Vorlagenmethode selbst überschreiben zu müssen. Mit anderen Worten, sie bieten einen “Haken”, an dem Variantenimplementierungen “hängen”. Bei den Hilfsmethoden kann es sich entweder um abstrakte Methoden handelt, bei denen Fallunterklassen zur Bereitstellung konkreter Implementierungen erforderlich sind, oder Hook-Methoden, die leere Körper in der übergeordneten Klasse enthalten. Unterklassen können (müssen aber nicht erforderlich) den Vorgang anpassen, indem sie die Hook-Methoden überschreiben. Die Absicht der Vorlagenmethode besteht darin, die Gesamtstruktur des Vorgangs zu definieren, während Unterklassen bestimmte Schritte verfeinern oder neu definieren können. [2] Kindliches nahtloses Zahnmuster. Kawaii-Zahn, Zahnpasta, Zahnbürste, Mundwasser und Zahnseide. Zeichentrickfiguren. Hygiene.

Das Vorlagenmuster ist nützlich, wenn Sie mit automatisch generiertem Code arbeiten. Die Herausforderung bei der Arbeit mit generiertem Code besteht darin, dass Änderungen am Quellcode zu Änderungen im generierten Code führen. Wenn handschriftliche Änderungen am generierten Code vorgenommen wurden, gehen diese verloren. Wie sollte also der generierte Code angepasst werden? Das Vorlagenmuster bietet eine Lösung. Wenn der generierte Code dem Vorlagenmethodenmuster folgt, ist der generierte Code alle eine abstrakte Superklasse. Sofern handschriftliche Anpassungen auf eine Unterklasse beschränkt sind, kann der Codegenerator erneut ausgeführt werden, ohne dass das Risiko besteht, dass diese Änderungen überschrieben werden. Bei Verwendung bei der Codegenerierung wird dieses Muster manchmal als Generierungslückenmuster bezeichnet. [7] Make-up nahtlose Muster. Haarbürste Lidschatten Lippenstift Nägel Vektor nahtlose Textil-Design-Projekt Zur Laufzeit wird der durch die Vorlagenmethode dargestellte Algorithmus ausgeführt, indem die Vorlagennachricht an eine Instanz einer der konkreten Unterklassen gesendet wird.

Durch Vererbung beginnt die Vorlagenmethode in der Basisklasse auszuführen. Wenn die Vorlagenmethode eine Nachricht an die Selbstanforderung einer der Hilfsmethoden sendet, wird die Nachricht von der konkreten Unterinstanz empfangen. Wenn die Hilfsmethode überschrieben wurde, wird die übergeordnete Implementierung in der Unterinstanz ausgeführt. Wenn sie nicht überschrieben wurde, wird die geerbte Implementierung in der Basisklasse ausgeführt. Dieser Mechanismus stellt sicher, dass der Gesamtalgorithmus jedes Mal die gleichen Schritte ausführt, während die Details einiger Schritte davon abhängen, welche Instanz die ursprüngliche Anforderung zum Ausführen des Algorithmus empfangen hat. In der objektorientierten Programmierung ist die Vorlagenmethode eines der Verhaltensmuster, die von Gamma et al.[1] im Buch Design Patterns identifiziert werden. Die Vorlagenmethode ist eine Methode in einer übergeordneten Klasse, in der Regel eine abstrakte Superklasse, und definiert das Skelett einer Operation in Form einer Reihe von übergeordneten Schritten. Diese Schritte werden selbst durch zusätzliche Hilfsmethoden in derselben Klasse wie die Vorlagenmethode implementiert. Die Vorlagenmethode wird in Frameworks verwendet, in denen jeder die invarianten Teile der Domänenarchitektur implementiert und gleichzeitig Hookmethoden für die Anpassung bereitstellt. Dies ist ein Beispiel für die Umkehrung der Kontrolle. Die Vorlagenmethode wird aus den folgenden Gründen verwendet. [3] Dieses Muster ist ein Beispiel für die Umkehrung der Kontrolle, da der Code auf hoher Ebene nicht mehr bestimmt, welche Algorithmen ausgeführt werden sollen.

Stattdessen wird zur Laufzeit ein Algorithmus auf niedrigerer Ebene ausgewählt.

Comments are closed.