SlideShare uma empresa Scribd logo
Universidade Feevale
Alunos: Sérgio Andrigo dos Santos
Gabriel Schmitt Kohlrausch
André Schmitz
Disciplina: Técnicas Avançadas de Programação
Professor: Marcelo Carboni
Outubro, 2010.
Design Patterns
Factory
2
Factory - Definição
• Define uma interface ou classe abstrata para criar
um objeto, mas deixa as subclasses decidirem qual
classe instanciar.
• Na prática:
É uma forma de criar objetos deixando a decisão de qual
classe concreta utilizar, por conta de regras
encapsuladas.
Este padrão estabelece uma forma de desenvolver
objetos que são responsáveis pela criação de outros
objetos.
3
Factory - Utilização
• Utilidade:
Quando você precisa criar objetos dinamicamente
sem conhecer a classe de implementação.
• Exemplo:
Necessidade de ter um objeto de conexão de dados, porém
a classe necessária para instanciar esse objeto depende
do banco de dados a ser utilizado.
• Freqüência de uso:
– Alta
4
Factory - Diagrama
Participantes:
IProduct: Interface para
produtos que serão criados
ProductA e ProductB: Classes
que vão implementar a
interface Iproduct
Creator: Fornece a criação de
objetos concretos
Client: utiliza o Creator para
obter um objeto concreto do
FactoryMethod
5
Factory – Demo 1
• Problema:
– Considere um mercado de classe alta que estoca e
vende carne de avestruz o ano todo.
– Essa loja possui um gerente de compras (comprador)
que garante o abastecimento o ano todo.
– A cada estação no ano a compra de carne deve ser
feita de uma região diferente:
• Inverno, Outono, Primavera: África do Sul
• Verão: Espanha
– Embora o produto seja rotulado a loja não se
interessa em saber a origem do produto.
6
Factory – Demo 1
• Comparando com o diagrama:
Diagrama Exemplo
Client Loja
Creator Comprador
ProductA Fornecedor de carne da Espanha
ProductB Fornecedor de carne da África do Sul
Iproduct Fornecimento de carnes
7
DEMO 1
8
Factory – Demo 2
• Problema:
– Considere um sistema que tenha a capacidade de se
conectar e executar operações em vários SGDBs.
– Cada SGDB tem suas características próprias como
por exemplo string de conexão, métodos para
comandos sql, métodos para transações
– Devemos ter em todo sistema uma forma única
(objeto concreto) para realizar essas operações.
9
DEMO 2

Mais conteúdo relacionado

Semelhante a Factory apresentacao

padrao de projeto1
padrao de projeto1padrao de projeto1
padrao de projeto1
Walney Negreiros
 
Patterns
PatternsPatterns
Patterns
gersaoliveira
 
padrao de projeto3
padrao de projeto3padrao de projeto3
padrao de projeto3
Walney Negreiros
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
Eduardo Nicola F. Zagari
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
Yan Justino
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
Elaine Cecília Gatto
 
Introdução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reaisIntrodução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reais
Michel Graciano
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
Cloves da Rocha
 
Prototype1 - thiago
Prototype1 - thiagoPrototype1 - thiago
Prototype1 - thiago
tceufrasio1
 
GoF.ppt
GoF.pptGoF.ppt
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
AndreCosta502039
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
Fabio Kon
 
Aula 05 qs - cocomo
Aula 05   qs - cocomoAula 05   qs - cocomo
Aula 05 qs - cocomo
Junior Gomes
 
Abstract
AbstractAbstract
Abstract
Alan Oliveira
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
Eduardo Nicola F. Zagari
 
Padroes de Projetos e aplicações- parte 01
Padroes de Projetos e aplicações- parte 01Padroes de Projetos e aplicações- parte 01
Padroes de Projetos e aplicações- parte 01
Walney Negreiros
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
Thiago Antonius
 
Projeto arrastão projeto fábrica de software
Projeto arrastão   projeto fábrica de softwareProjeto arrastão   projeto fábrica de software
Projeto arrastão projeto fábrica de software
Alan Correa Morais
 
Exemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosExemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dados
Luis Borges Gouveia
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
J0071
 

Semelhante a Factory apresentacao (20)

padrao de projeto1
padrao de projeto1padrao de projeto1
padrao de projeto1
 
Patterns
PatternsPatterns
Patterns
 
padrao de projeto3
padrao de projeto3padrao de projeto3
padrao de projeto3
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1Programação Orientada a Objetos parte 1
Programação Orientada a Objetos parte 1
 
Introdução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reaisIntrodução a CDI e como utilizá-la em aplicações reais
Introdução a CDI e como utilizá-la em aplicações reais
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
 
Prototype1 - thiago
Prototype1 - thiagoPrototype1 - thiago
Prototype1 - thiago
 
GoF.ppt
GoF.pptGoF.ppt
GoF.ppt
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a ObjetosPadrões de Projeto de Software Orientado a Objetos
Padrões de Projeto de Software Orientado a Objetos
 
Aula 05 qs - cocomo
Aula 05   qs - cocomoAula 05   qs - cocomo
Aula 05 qs - cocomo
 
Abstract
AbstractAbstract
Abstract
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
Padroes de Projetos e aplicações- parte 01
Padroes de Projetos e aplicações- parte 01Padroes de Projetos e aplicações- parte 01
Padroes de Projetos e aplicações- parte 01
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Projeto arrastão projeto fábrica de software
Projeto arrastão   projeto fábrica de softwareProjeto arrastão   projeto fábrica de software
Projeto arrastão projeto fábrica de software
 
Exemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosExemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dados
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 

Último (8)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 

Factory apresentacao

  • 1. Universidade Feevale Alunos: Sérgio Andrigo dos Santos Gabriel Schmitt Kohlrausch André Schmitz Disciplina: Técnicas Avançadas de Programação Professor: Marcelo Carboni Outubro, 2010. Design Patterns Factory
  • 2. 2 Factory - Definição • Define uma interface ou classe abstrata para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar. • Na prática: É uma forma de criar objetos deixando a decisão de qual classe concreta utilizar, por conta de regras encapsuladas. Este padrão estabelece uma forma de desenvolver objetos que são responsáveis pela criação de outros objetos.
  • 3. 3 Factory - Utilização • Utilidade: Quando você precisa criar objetos dinamicamente sem conhecer a classe de implementação. • Exemplo: Necessidade de ter um objeto de conexão de dados, porém a classe necessária para instanciar esse objeto depende do banco de dados a ser utilizado. • Freqüência de uso: – Alta
  • 4. 4 Factory - Diagrama Participantes: IProduct: Interface para produtos que serão criados ProductA e ProductB: Classes que vão implementar a interface Iproduct Creator: Fornece a criação de objetos concretos Client: utiliza o Creator para obter um objeto concreto do FactoryMethod
  • 5. 5 Factory – Demo 1 • Problema: – Considere um mercado de classe alta que estoca e vende carne de avestruz o ano todo. – Essa loja possui um gerente de compras (comprador) que garante o abastecimento o ano todo. – A cada estação no ano a compra de carne deve ser feita de uma região diferente: • Inverno, Outono, Primavera: África do Sul • Verão: Espanha – Embora o produto seja rotulado a loja não se interessa em saber a origem do produto.
  • 6. 6 Factory – Demo 1 • Comparando com o diagrama: Diagrama Exemplo Client Loja Creator Comprador ProductA Fornecedor de carne da Espanha ProductB Fornecedor de carne da África do Sul Iproduct Fornecimento de carnes
  • 8. 8 Factory – Demo 2 • Problema: – Considere um sistema que tenha a capacidade de se conectar e executar operações em vários SGDBs. – Cada SGDB tem suas características próprias como por exemplo string de conexão, métodos para comandos sql, métodos para transações – Devemos ter em todo sistema uma forma única (objeto concreto) para realizar essas operações.