Metoda szablonowa (Template Method)

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Metoda szablonowa to behawioralny wzorzec projektowy, który służy do określenia szkieletu algorytmu w klasie bazowej i pozostawienia wybranych kroków do zaimplementowania lub zmodyfikowania w klasach pochodnych.

Najważniejsza idea: klasa bazowa definiuje kolejność działań, a podklasy dostarczają szczegóły wykonania.

Kiedy stosować?

Wzorzec stosuje się, gdy kilka klas wykonuje podobny algorytm, ale różnią się niektórymi krokami. Dzięki temu unika się duplikacji kodu i zachowuje wspólną strukturę działania.

Przykłady zastosowań:
- generowanie raportów w różnych formatach,
- przetwarzanie plików różnego typu,
- obsługa procesu logowania z różnymi metodami uwierzytelniania,
- przygotowanie dokumentu według stałej procedury.

Przykład w Javie

abstract class Raport {
    public final void generuj() {
        pobierzDane();
        przetworzDane();
        zapiszRaport();
    }

    protected abstract void pobierzDane();
    protected abstract void przetworzDane();

    protected void zapiszRaport() {
        System.out.println("Zapis raportu");
    }
}

class RaportPDF extends Raport {
    protected void pobierzDane() {
        System.out.println("Pobieranie danych dla PDF");
    }

    protected void przetworzDane() {
        System.out.println("Przetwarzanie danych do PDF");
    }
}

Metoda generuj() jest metodą szablonową — ustala kolejność kroków. Podklasa RaportPDF implementuje szczegóły.

Ważne na egzaminie

Metoda szablonowa nie służy do tworzenia struktur drzewiastych ani do przechowywania kolekcji obiektów. Jej celem jest zdefiniowanie ogólnego przebiegu algorytmu i przekazanie szczegółów implementacji podklasom.