einführen
Die Vorlagenmethode definiert das Skelett eines operativen Algorithmus und verzögert einige Schritte in einer Unterklasse. Die Vorlagenmethode ermöglicht es der Unterklasse, bestimmte spezifische Schritte des Algorithmus neu zu definieren, ohne die Struktur des Algorithmus zu ändern.
Vorlagenmethoden sind eine grundlegende Technik für die Wiederverwendung von Code, die in Klassenbibliotheken besonders wichtig ist, da sie öffentliches Verhalten in Klassenbibliotheken extrahieren. Die Vorlagenmethode führt zu einer umgekehrten Kontrollstruktur, die das legendäre "Hollywood -Gesetz" ist, dh "Suchen Sie nicht nach uns, wir werden nach Ihnen suchen", was sich auf die übergeordnete Klasse bezieht, die den Betrieb einer Klasse und nicht umgekehrt umgekehrt ist. Die konkreten Manifestationen sind abstrakte Klassen (und abstrakte Methoden) in objektorientierten Programmiersprachen sowie Unterklassen, die die abstrakte Klasse (und abstrakte Methoden) erben.
Text
Zum Beispiel haben Tee und Kaffee die gleichen Stufen wie kochendes Wasser, Brauen, Gießen in eine Tasse, das Hinzufügen kleiner Zutaten usw. Die Methode zum Brauen jedes Getränks und die zusätzlichen kleinen Zutaten sind jedoch unterschiedlich, sodass wir die Vorlagenmethode verwenden können, um diesen Hauptschritt zu erreichen.
Definieren Sie zunächst die abstrakten Schritte:
Die Codekopie lautet wie folgt:
var caffeinbeverage = function () {
};
Coffeinbeverage.Prototype.preperReRecipe = function () {
this.boilwater ();
this.brew ();
this.pouroncup ();
if (this.customerwantsCondiments ()) {
// Wenn Sie kleine Zutaten hinzufügen können, fügen Sie hinzu
this.addcondiments ();
}
};
Coffeinbeverage.Prototype.boilwater = function () {
console.log ("Bring das Wasser zum Kochen!");
};
Caffeinbeverage.Prototype.PouronCup = function () {
console.log ("Steck das Getränk in die Tasse!");
};
Coffeinbeverage.Prototype.brew = function () {
Neuen Fehler werfen ("Diese Methode muss neu geschrieben werden!");
};
Coffeinbeverage.Prototype.AddCondiments = function () {
Neuen Fehler werfen ("Diese Methode muss neu geschrieben werden!");
};
// standardmäßig kleine Materialien hinzufügen
Coffeinbeverage.Prototyp.CustomerWantsCondiments = function () {
zurückkehren;
};
Diese Funktion erweitert alle grundlegenden Schritte und Hauptschritte im Prototyp. Das Brauen und Hinzufügen kleiner Zutaten werden nicht implementiert und werden von der Funktion verwendet, die dem zu implementierten spezifischen Getränk entspricht. Darüber hinaus gibt es standardmäßig ein, ob kleine Zutaten (CustomerwantsCondiments) hinzugefügt werden. Dieser Wert kann beim Umschreiben der Unterfunktion neu schreiben.
Die folgenden zwei Funktionen sind die entsprechenden Funktionen zum Brauen von Kaffee und dem Brauen von Tee:
Die Codekopie lautet wie folgt:
// Kaffee machen
var coffee = function () {
Koffeinbeverage.Apply (this);
};
Coffee.prototype = new Caffeinbeverage ();
Coffee.prototype.brew = function () {
console.log ("Ich möchte Kaffee aus der Kaffeemaschine gießen!");
};
Coffee.prototype.addcondiments = function () {
console.log ("Zucker und Milch hinzufügen");
};
Coffee.prototype.customerwantscondiments = function () {
Rückkehr bestätigen ("Möchten Sie Zucker und Milch hinzufügen?");
};
// Teeblätter machen
var tea = function () {
Koffeinbeverage.Apply (this);
};
Tea.Prototype = neuer Koffeinbeverage ();
Tea.prototype.brew = function () {
console.log ("puuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuikiiiiiuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuenächächiiiiieineeineeineeineeineeineein UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
};
Tea.prototype.addcondiments = function () {
console.log ("Zitrone hinzufügen!");
};
Tea.Prototype.CustomerWantsCondiments = function () {
Rückkehr bestätigen ("Möchten Sie Zitrone hinzufügen?");
};
Mithilfe von Bestätigung können Benutzer außerdem auswählen, ob sie selbst kleine Zutaten hinzufügen sollen, was sehr gut ist, nicht wahr?
Zusammenfassen
Die Vorlagenmethode wird auf die folgenden Situationen angewendet:
1. Implementieren Sie den unveränderlichen Teil eines Algorithmus gleichzeitig und überlassen
2. Das öffentliche Verhalten in jeder Unterklasse sollte extrahiert und in einer öffentlichen Elternklasse konzentriert werden, um die Doppelarbeit von Code zu vermeiden, und die Unterschiede werden in neue Operationen unterteilt. Ersetzen Sie schließlich diese verschiedenen Codes durch eine Vorlagenmethode zum Phieren dieser neuen Operationen.
3.. Kontroll -Unterklasse -Erweiterungen. Die Vorlagenmethode ruft nur die "Hook" -Operation an bestimmten Punkten auf, so dass sie an diesen Punkten Erweiterungen ermöglicht.
Im Gegensatz zu Richtlinienmustern verwenden Vorlagenmethoden die Vererbung, um einen Teil des Algorithmus zu ändern, während Richtlinienmuster Delegierte verwenden, um den gesamten Algorithmus zu ändern.