Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Manoel Barros

Padrão Factory

Recommended Posts

Ola pessoal

 

 

Estou estudando o Padrão Factory, só que estou com dificuldade em entender a verdadeira utilização deste padrão.

alguém poderia passar um exemplo de implementação deste padrão? Onde neste exemplo poderá ver claramente a vantagem de utilizar o Factory

 

Abraços

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Williams Duarte pela referencia

 

Bom pelo que eu entendi no artigo indicado, existe dois tipos de factory: Abstract Factory e Factory Method

no caso o padrão Abstract Factory é um objeto que contém um conjunto de fábricas de coisas relacionadas.

e no factory method através de apenas 1 método você passa o parâmetro e ele cria o objeto de acordo com aquele parâmetro, no seu método criador

 

Correto o meu entendimento?

Mas ainda não entendi por exemplo qual a hora certa de se usar Abstract Factory.

E qual a hora certa de se usar Factory Method.

 

Pois ambos os padrões (Abstract Factory e Factory Method) tem o mesmo objetivo, fabrica um produto.

ainda estou meio confuso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente, e a grosso modo, a diferença é a quantidade de tipos produtos que você tratará.

 

Se você tem N factories para criar um produto, você está utilizando FactoryMethod, pois não importa quem está criando, você sabe que receberá um produto final daquele tipo.

 

Como o fatídico exemplo da Pizzaria que fabrica Pizzas. Pizza é o seu produto e Pizzaria o fabrica (ou o pizzaiolo, depende do ponto de vista) o tipo da pizza que você vai querer (sabor, borda, etc...). Essas condições são dependentes dos teus parâmetros e você não pode antecipar que tipo de pizza será fabricada, apenas que o produto final é apenas uma Pizza.

 

Entretanto, se você possui uma família de produtos que devem ser criados dinamicamente, então, utilizará AbstractFactory.

 

No caso do exemplo do link acima, são criadas basicamente duas familias de produtos, a família de Statements e a família de Connectors. Sendo ambos específicos para cada SGBD e, ambos se interagem. Mas para o desenvolvedor/desenvolvimento, não importa o produto final, e sim a interface.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.