Template Method: Refatorando com design patterns

Olá, pessoal

Retornando aos design patterns, desta vez falarei sobre o padrão Template Method. No entanto, neste post, utilizarei uma abordagem diferente: ao invés de definir o padrão e dar um exemplo, vou mostrar como refatorar código com o auxílio do padrão, melhorando o design de uma aplicação já existente.

Vamos codar então!

O CENÁRIO

Imagine que na aplicação que esteja dando manutenção exista a classe abaixo, responsável por fazer o cálculo de uma prestação de um contrato:

public class Prestacao
{
    public decimal Calcular(decimal valorTotal, int numeroDeParcelas)
    {
        var valorPrincipal = valorTotal / numeroDeParcelas;

        var valorDaTaxaAdministrativa = valorPrincipal * 0.01m;

        var valorDoSeguro = valorPrincipal * 0.015m;

        return valorPrincipal + valorDaTaxaAdministrativa + valorDoSeguro;
    }
}

Continue lendo »