É um padrão de projeto de categoria comportamental. Utiliza uma classe específica para mudar o algoritmo que executa em uma classe elemento. Desta forma, o algoritmo que executa no elemento pode variar como e quando esta classe específica, que define o nome do padrão, variar também. Estamos falando do padrão de projeto