Die Template-Methode ist ein Verhaltensmodell im objektorientierten Entwurfsmuster und hat einen breiten Anwendungswert in der PHP-Entwicklung. Es realisiert die Multiplexierung und flexible Ausdehnung logischer Strukturen, indem das Skelett eines Algorithmus definiert und die Implementierung einiger Schritte zur Unterklasse verzögert wird.
Das Template -Methodenmuster basiert normalerweise auf einer abstrakten Klasse, wobei der allgemeine Algorithmusprozess zusammengefasst und wichtige Schritte als abstrakte Methoden definiert werden, wodurch sie konkrete Unterklassen zur Implementierung überlassen. Dies vereint nicht nur den Prozess, sondern behält auch die Anpassungsfähigkeiten von Unterklassen bei.
Hier ist ein PHP -Beispiel, das Einkaufswagenfunktionen basierend auf Vorlagenmustern implementiert und demonstriert, wie unterschiedliche Geschäftslogik durch Vererbungs- und Methodenüberlagerung implementiert werden kann.
<?php abstract class ShoppingCartTemplate { // Vorlagenmethode:Einheitlicher Einkaufswagenverarbeitungsprozess public final function processCart() { $this-> AddItems (); $ this-> calculatetotal (); $ this-> showcart (); } // Abstract -Methode für die Implementierung von Unterklassen geschützt abstrakte Funktionsditems (); geschützte abstrakte Funktionskalculatetotal (); geschützte abstrakte Funktion showcart (); } // Die erste Einkaufswagen -Implementierungsklasse ein ShoppingCart1 erweitert ein ShoppingCartTemplate { Protected Function AddItems () { Echo "Item in Cart 1 hinzufügen 1.<br/> "; } geschützte Funktion calculatetotal () { Echo "Berechnen Sie den Gesamtpreis von Wagen 1.<br/> "; } geschützte Funktion showcart () { Echo "zeigt die Artikel in Wagen 1.<br/> "; } } // Die zweite Art von Einkaufswagen -Implementierungsklassen ShoppingCart2 erweitert ein ShoppingCartTemplate { Protected Function AddItems () { Echo "Item in Cart 2 hinzufügen 2.<br/> "; } geschützte Funktion calculatetotal () { Echo "Berechnen Sie den Gesamtpreis von Wagen 2.<br/> "; } geschützte Funktion showcart () { Echo "zeigt die Gegenstände in Wagen 2.<br/> "; } } // Beispiel $ cart1 = new ShoppingCart1 (); $ cart1-> processCart (); Echo "<br/> "; $ cart2 = new ShoppingCart2 (); $ cart2-> processCart (); ?>
Im obigen Code wird die Vorlagenmethode processCart () in der coppingCartTemplate -Abstract -Klasse definiert, die die Ausführungsreihenfolge der drei Schritte für das Hinzufügen von Produkten, die Berechnung des Gesamtpreises und die Anzeige des Einkaufswagens vereint. Durch die Erben dieser Klasse müssen die Unterklassen sich nur auf die Implementierung ihrer jeweiligen Geschäftsdetails konzentrieren, ohne die Prozesslogik neu zu definieren.
Die Vorteile des Vorlagenmethodenmodus werden in den folgenden Aspekten widerspiegelt:
In den tatsächlichen PHP -Projekten wie Formularverarbeitung, Zahlungsprozess, Produktempfehlungssystem usw. kann der Hauptprozess über den Vorlagenmethodenmodus vereinigt werden, und dann wird die Verarbeitungslogik von der Unterklasse gemäß dem Geschäftsszenario angepasst. Dies kann die Klarheit und Wartbarkeit der Projektstruktur verbessern und den doppelten Code verringern.