Como foi o workshop com Ralph Johnson do GoF

Rolou neste último sábado, dia 15/11, no IME-USP, um “workshop” de design patterns com Ralph Johnson, um dos escritores do famoso livro “Design Patterns: Elements of Reusable Object-Oriented Software”. O livro completou 20 anos de lançamento  e ele esteve por aqui falando sobre isso.

Coloquei a palavra workshop acima entre aspas porque, ao contrario do título do evento, este foi na realidade uma grande palestra (pouco menos de 3h de duração). Os slides podem ser baixados <<aqui>>.

Abaixo, seguem alguns comentários a respeito do evento e dos slides mostrados. Como o tempo foi muito curto, ele parou no slide 43 (a 26 slides do final). Continue lendo »

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 »