Oi Alan,
Como no curso eu não utilizei nenhum framework, a utilização seria criando uma lista manualmente:
List<ValidacaoReajuste> validacoes = List.of(
new ValidacaoPeriodicidadeEntreReajustes(),
new ValidacaoPercentualReajuste(),
//outros validadores aqui...);
ReajusteService service = new ReajusteService(validacoes);
Mas é bem provável em uma aplicação que você utilize algum framework que suporte injeção de dependências, como o Spring, e nesse caso a lista com os validadores seria criada automaticamente pelo framework. Algo como:
@Service
public class ReajusteService {
@Autowired
private List<ValidacaoReajuste> validacoes;
//metodos...
}
Desse jeito o Spring vai buscar todas as classes que implementam a interface ValidacaoReajuste
e criar uma lista com elas para injetar no atributo da service. Assim fica flexível e não precisa mexer na classe service quando novos validadores forem criados ou removidos.
Bons estudos!