Olá. Eu posso dizer que a diferença do Chain para o Strategy, é que no Strategy eu já sei que algoritmo quero executar e o chamo, mesmo tendo vários diferentes. Já no Chain, eu não sei qual será executado e então passo a responsabilidade para os próprios algoritmos fazerem esta verificação dentro deles em tempo de execução. No Chain sempre há encadeamento e devo sempre chamar mais do que um de forma encadeada para que eles façam a verificação?