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-подмена.