La méthode du modèle est un modèle comportemental dans le modèle de conception orienté objet et a une grande valeur d'application dans le développement de PHP. Il réalise le multiplexage et l'expansion flexible des structures logiques en définissant le squelette d'un algorithme et en retardant la mise en œuvre de certaines étapes de la sous-classe.
Le modèle de méthode de modèle est généralement basé sur une classe abstraite, encapsulant le processus d'algorithme général et définissant les étapes clés comme des méthodes abstraites, les laissant dans des sous-classes concrètes à implémenter. Cela unifie non seulement le processus, mais conserve également les capacités de personnalisation des sous-classes.
Voici un exemple de PHP qui met en œuvre la fonctionnalité de panier d'achat basé sur les modèles de modèle, démontrant comment implémenter différentes logiques métier grâce à l'héritage et à la superposition de la méthode.
<?php abstract class ShoppingCartTemplate { // Méthode du modèle:Processus de traitement des paniers d'achat unifiés public final function processCart() { $this-> addItems (); $ this-> calculattotal (); $ this-> showcart (); } // Méthode abstraite laissée pour la fonction d'implémentation de sous-classe protégée additionnems (); Fonction abstraite protégée CalculaTetotal (); Fonction abstraite protégée ShowCart (); } // La première classe d'implémentation de panier d'achat ShoppingCart1 étend ShoppingCartTemplate { Fonction protégé addItems () { ECHO "Ajouter un élément au panier 1.<br/> " } Fonction protégé CalculaTetotal () { Echo "Calculer le prix total du panier 1.<br/> " } Fonction protégé Showcart () { Echo "montre les articles dans le panier 1.<br/> " } } // Le deuxième type de classe d'implémentation de panier de panier ShoppingCart2 étend ShoppingTartTemplate { Fonction protégé addItems () { Echo "Ajouter un élément au panier 2.<br/> " } Fonction protégé CalculaTetotal () { Echo "Calculez le prix total du panier 2.<br/> " } Fonction protégé Showcart () { Echo "montre les articles dans le panier 2.<br/> " } } // appelle l'exemple $ cart1 = new shoppingcart1 (); $ cart1-> processCart (); écho "<br/> " $ cart2 = new ShoppingCart2 (); $ cart2-> processCart (); ?>
Dans le code ci-dessus, la méthode du modèle processCart () est définie dans la classe abstraite de ShoppingCartTemplate , qui unifie l'ordre d'exécution des trois étapes de l'ajout de produits, de calcul du prix total et d'affichage du panier. En héritant de cette classe, les sous-classes doivent uniquement se concentrer sur la mise en œuvre de leurs détails commerciaux respectifs sans redéfinir la logique de processus.
Les avantages du mode de méthode du modèle se reflètent dans les aspects suivants:
Dans les projets PHP réels, tels que le traitement des formulaires, le processus de paiement, le système de recommandation de produit, etc., le processus principal peut être unifié via le mode de méthode du modèle, puis la logique de traitement est personnalisée par la sous-classe en fonction du scénario d'entreprise. Cela peut améliorer la clarté et la maintenabilité de la structure du projet et réduire le code en double.