Esta versão do projeto implementa a leitura de retorno de boletos com o padrão Strategy e Template Method, evitando a duplicação de código existente na versão anterior utilizando apenas o padrão Strategy.

Por estar utilizando os dois padrões em conjunto, note que a estrutura das classes não reflete exatamente os diagramas apresentados na pasta anterior.

Esta é uma versão alternativa do projeto retorno-boleto-simple-factory que não utiliza programação funcional e evita o uso de blocos de if para selecionar qual classe instanciar. Ela utiliza carregamento dinâmico de classes utilizando o método Class.forName(), descobrindo automaticamente qual o nome da classe que deve ler um arquivo de um determinado banco. Se a classe existir, ela será carregada. Com esta implementação a Simple Factory é totalmente aderente ao Open/Closed Principle (OCP).