Considere o seguinte problema. É necessário processar dados e os dados podem estar inicialmente em vários formatos: CSV, numa base de dados, ficheiro de texto, etc. Os dados a processar correspondem a um conjunto de pares chave (cadeia de caracteres) - valor (inteiro). O resultado do processamento dos dados é também descrito por um conjunto de pares chave-valor que devem ser escritos no terminal utilizando o formato "chave : valor". O processamento a realizar depende do formato de origem dos dados. 

Aplicando o padrão Template Method, descreva a sua solução por forma a atingir um nível de factorização de código elevado. Compare a sua solução com a seguinte solução.