Чему научился:
Насколько я понял при шаблонном методе мы создаём абстрактный класс в котором мы реализуем некий алгоритм. Основной метод у нас должен быть не изменяемым, остальные могут быть как-то реализованы или быть полностью абстрактными для того чтобы в конкретном классе была какая-то своя реализация. Таким образом если нам необходимо иметь несколько классов выполняющих один и тот же алгоритм с небольшими изменениями в каких-то методах, используя этот шаблон мы избежим дублирования кода.
Что было сложным:
написать своими словами как я понял метод
Научился: шаблонный метод используется в случаях когда при работе с разными классами теребуется произвести серию похожих действий.
например для принятие заказа в ресторане фаст фуд требуется внести заказ, посчитать итоговую сумму, выдать сдачу. Эти действия будут общими для любого заказа. При этом заказы могут отличаться, по признаку требуется ли готовка (гамбургер дополнительное отправление заказа на кухню) или нет (предоставление напитка из бара).
По тем действиям, которые отличаются - в абстрактном классе создается абстрактный метод, который затем реализуется в отдельных классах.
Научился: Интересный паттерн и когда писал сборник игр, вот такие операции, как инициализация запуск пауза результат у всех игр разный, но последовательность действий одинаковая.