Metoda szablonowa to behawioralny wzorzec projektowy według którego definiuje się szkielet algorytmu w klasie bazowej i pozwala klasom pochodnym nadpisać poszczególne jego etapy bez zmiany ogólnej struktury.
Weźmy pod uwagę przykład funkcjonalności Haseł Jednorazowych (OTP — One Time Password). Są różne sposoby dostarczenia takiego hasła użytkownikowi (SMS, email, itp.), jednak niezależnie od sposobu cały proces jest taki sam:
Wygeneruj losową n-cyfrową liczbę.
Zapisz wygenerowaną liczbę w pamięci podręcznej w celu późniejszej weryfikacji.
Przygotuj zawartość.
Wyślij powiadomienie.
Ewentualne nowe typy haseł jednorazowych wprowadzone później najprawdopodobniej będą tworzone w analogiczny sposób.
Mamy więc scenariusz w którym etapy pewnej operacji są takie same, a różna jest tylko ich konkretna implementacja. Świetna okazja do posłużenia się wzorcem Metoda szablonowa.
Najpierw definiujemy bazowy szablon algorytmu składający się z pewnej liczby metod. To będzie nasza metoda szablonowa. Następnie zaimplementujemy każdy z etapów, ale pozostawimy metodę szablonową w postaci niezmienionej.