Esta versão do projeto implementa a leitura de retorno de boletos com o padrão Template Method, utilizando programação funcional. Com tal implementação, evitamos a duplicação de código existente na versão anterior utilizando apenas o padrão Strategy, conseguindo os mesmos efeitos de tal padrão: permitir trocar a implementação de um algoritmo em tempo de execução.

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.

A modelagem desta implementação é mostrada abaixo.

template method boleto funcional