# Template Method Pattern

Record: `arch:template-method-pattern`
Kind: pattern
Layer: [Design Patterns Core](https://banes-lab.com/records/layer/design-patterns-core.md)
Severity: contextual
Scope: workflow, framework
Canonical: https://banes-lab.com/ontology#arch-template-method-pattern

## Repair

- Refactored by: Introduce Template Method
- Detected by: duplicated method sequences
- Violated by: copied workflows with small variations
- Measured by: workflow duplication
- Enforced by: [design review](https://banes-lab.com/records/arch/design-review.md)

## requires

- [Stable Algorithm Skeleton](https://banes-lab.com/records/lex/stable-algorithm-skeleton.md)

## reinforces

- [Framework Reuse](https://banes-lab.com/records/lex/framework-reuse.md)

## enables

- [Controlled Variation](https://banes-lab.com/records/lex/controlled-variation.md)

## conflicts-with

- [Duplicated Workflow](https://banes-lab.com/records/lex/duplicated-workflow.md)

## tensions-with

- [Inheritance Coupling](https://banes-lab.com/records/lex/inheritance-coupling.md)

## tensions

- [Template Method Pattern Inheritance Coupling](https://banes-lab.com/records/tension/inheritance-coupling-template-method-pattern.md)
