Pattern: strategy, java flavour
Patterns: strategy, template method; java flavour