Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

- Strategy - declares an interface common to all supported algorithms. Context uses this interface to call the algorithm defined by a ConcreteStrategy.
- ConcreteStrategy - implements the algorithm using the Strategy interface.
- Context - is configured with a ConcreteStrategy object. It maintains a reference to a Strategy object. It may define an interface that lets Strategy access its data.
Labels:
None