Como você está
criando os seus
objetos?
@raphaelmolesim
Saturday, March 9, 13
Construção de Objetos
Saturday, March 9, 13
Qual é o problema?
• Não está clara a intenção do código
• Por que tantos construtores?
• Quais não estão sendo utilizados?
Saturday, March 9, 13
Métodos de Criação
Saturday, March 9, 13
Por que refatorar?
• Deixar claro a intenção do código
• Ganha mais flexibilidade, por que menos
restrições
• Torna mais simples encontrar código de
criação não utilizado
Saturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
Falando de Factory
• Tema que comumente causa confusão
• Gof
• Abstract Factory
• Factory Method
• Padrão Factory
Saturday, March 9, 13
Factory
• Classe que implementa 1 ou mais métodos
de criação
• Estes métodos podem ser estáticos ou não
• Retorna interface, classe abstrata ou
concreta
• Pode implementar métodos não
relacionado a criação do objeto
Saturday, March 9, 13
Saturday, March 9, 13
Por que refatorar?
• Consolidar lógica de criação de objetos
• Desacoplar um cliente da lógica de criação
Saturday, March 9, 13
Factory Method
• Método não estático
• Retorna uma implementação de uma
interface ou de uma classe base.
• Permite criação polimórfica
• Factory Method não é uma Factory
Saturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
Por que refatorar?
• Reduz duplicação de código resultando de
um passo de customização
• Comunica efetivamente onde a criação
ocorre
Saturday, March 9, 13
Abstract Factory
Saturday, March 9, 13
Saturday, March 9, 13
Atenção
• Avalie antes de utilizar um pattern
• Refatore somente se valer a pena
• Trabalhe para resolver problemas
• Técnicas não são regras e depende de você
saber como usa-las
Saturday, March 9, 13
Workshop
Desenvolvimento no
Mundo Real
• Técnicas Refatoção
• Padrões de Projeto
• TDD e BDD
• Problemas do Mundo Real
• 25/03 => 28/03 (25% Off)
Saturday, March 9, 13
Saturday, March 9, 13

Como você está criando os seus objetos?