Strategy Design Pattern

Instead of implementing a single algorithm directly, a strategy design pattern allows for multiple algorithms. The strategy pattern then selects the appropriate algorithm at runtime.

Further Reading