Le Patron de méthode est un patron de conception comportemental qui permet de définir le squelette d’un algorithme dans la classe de base, et laisse les sous-classes redéfinir les étapes sans modifier la structure globale de l’algorithme.
Imaginons un exemple de fonctionnalité de mot de passe à usage unique. Nous disposons de plusieurs possibilités pour envoyer le mot de passe à un utilisateur (SMS, e-mail, etc.). Quelle que soit la façon de le communiquer, le processus complet pour le mot de passe à usage unique reste le même :
Générer un nombre aléatoire avec n chiffres.
Sauvegarder ce nombre dans le cache pour vérification ultérieure.
Préparer le contenu.
Envoyer la notification.
Tout nouveau type de mot de passe à usage unique ajouté dans le futur suivra probablement les mêmes étapes.
Nous nous retrouvons donc dans un scénario où les étapes d’un traitement particulier resteront les mêmes, seule leur implémentation pourra différer. C’est la situation idéale pour envisager d’utiliser le patron de méthode.
Tout d’abord, nous allons définir un modèle de base pour l’algorithme qui va être composé d’un nombre fixe de méthodes (notre patron de méthode). Ensuite nous implémenterons toutes les méthodes des étapes, sans toucher au patron de méthode.