Overview

The Strategy pattern allows the algorithm to vary independently from the clients that use it. It is a great alternative to using multiple conditional statements (if/else or switch) to select a behavior.

Key Components

  • Context: Maintains a reference to a Strategy object.
  • Strategy: Defines an interface common to all supported algorithms.
  • Concrete Strategies: Implement the algorithm using the Strategy interface.

Benefits

  • Cleanly separates the implementation of an algorithm from the code that uses it.
  • Allows switching algorithms at runtime.

Related Terms