Aplicando design pattern Factory - Esse é o jeito correto de se utilizar?

2 respostas
alexandref93

Então minha dúvida é a forma como é aplicado o Factory. Seria correto aplicar de uma forma em que por exemplo eu crio uma interface Carro onde disponibilizo os métodos necessários como andar, freia etc. E crio várias outras class que implementam o mesmo, e acabo criando uma outra class que seria uma espécie de CarroFactory onde ele me retorna o uma interface Carro implementada conforme minha requisição, basicamente esse seria o conceito de Factory, ou é muito mais além disso? Por que a única vantagens que eu consegui ver sobre esse conceito é o fato de por exemplo de uma class que irá compor o carro não precisar se preocupar em como criar o carro e apenas saber utilizar com os métodos públicos que foram disponibilizados.

Alguém tem uma explicação mais clara?

Obrigado desde já!

2 Respostas

eliangela

Olá!

Antes de mais nada, aconselho vc a comprar o livro: Use a cabeça! Padrões de Projetos. Com este livro, todas as suas perguntas serão respondidas.

Agora, respondendo as suas perguntas:

O padrão factory é basicamente isso. Vc cria uma interface e cria classes que a implementem. Depois vc cria a sua classe de fábrica (Factory) que vai se encarregar de criar as instâncias pra vc.

O padrão Factory é muito mais que isso. Veja por esse lado:
Quando vc desenvolve do “jeito tradicional”, vc corre o risco do seu código ser fechado para alterações, ou encher seu código de IFs.

Tivemos um caso assim aqui na empresa:
Foi criado um software para restaurantes e lanchonetes. No início, tinhamos somente pedido nas mesas. Depois foram criados os pedidos com cartão, disk entregas e pedidos on-line. O código ficou um emaranhado de IFs, e muito difícil de alterá-lo.
Sem o padrão Factory, fica difícil do software crescer.

Espero ter ajudado!

alexandref93

Então é isso mesmo, é que eu achei que estava fazendo de forma errada, vou dá um jeito de pegar esse livro!

Obrigado pela ajuda!

Criado 14 de agosto de 2011
Ultima resposta 15 de ago. de 2011
Respostas 2
Participantes 2