Define una familia de algoritmos, los encapsula y los hace intercambiables. Strategy permite que el algoritmo varie independientemente del cliente que lo use.
Identificar los aspectos de la aplicación que varian y separarlos de los que parmenecen constantes.
Programa una interface no una implementación.
Favorece la composición sobre la herencia.