advanced
Template Method
Определяйте invariant algorithm skeleton, позволяя subclasses или hooks customize selected steps.
Template Method задаёт инвариантный algorithm skeleton в базовом классе, а подклассы переопределяют шаги через hooks или abstract methods — ETL, test setup/teardown, request handling с общим logging. Наследование для расширения; при runtime-конфигурации лучше композиция.
На интервью: сравните со Strategy и pipeline functions. Fragile base class и порядок hooks.
Типовые ошибки: подклассы ломают предположения skeleton; неожиданный порядок hooks; template methods-монолиты.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Шаги skeleton фиксированы и документированы.
- Hooks с безопасным no-op по умолчанию.
- Подклассы не пропускают обязательные инварианты.
- Strategy, если нужна runtime-подмена.