Template Method
Contexte : Définir le squelette d’un algorithme dans une opération, en reportant certaines étapes aux sous‑classes. Template Method permet aux sous‑classes de redéfinir certaines étapes sans changer la structure de l’algorithme.
public abstract class AbstractClass{ public void TemplateMethod() { Step1(); Step2(); } protected abstract void Step1(); protected virtual void Step2() => Console.WriteLine("Default step2");}
public class ConcreteClass : AbstractClass{ protected override void Step1() => Console.WriteLine("Step1 implemented");}Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Importateurs de données : Une classe de base DataImporter définit les étapes : OpenSource(), ParseData(), ValidateData(), SaveToDatabase(). Les sous‑classes ne remplacent que les étapes nécessaires (importateur CSV, XML, JSON).
Exemple : Dans .NET, Stream.Read est abstrait ; les flux concrets le remplacent. Le pattern IDisposable avec Dispose(bool) est une méthode template. De même, les méthodes du cycle de vie System.Web.UI.Page.