SlideShare una empresa de Scribd logo
1 de 55
Descargar para leer sin conexión
InstitutoFederaldeEducação,CiênciaeTecnologiadaParaíba–campusCajazeiras 
Curso:AnáliseeDesenvolvimentodeSistemas 
Professor:Rodrigo 
Disciplina:PadrõesdeProjeto 
Fátima Ferreira 
Sérgio DinizPadrão de Criação de ObjetosFactoryMethod
Factory Method
“Definir uma interface para criar um objeto, mas deixar que subclasses decidam que classe instanciar. FactoryMethodpermite que uma classe delegue a responsabilidade de instanciamento às subclasses.” [GoF]
Intenção 
•Definirumainterfaceparacriaçãodeobjetos,permitindoasubclassedecidirqualdasimplementaçõesdeveserinstanciada; 
•FactoryMethodfazumaclassedelegarainstanciaçãoasubclasses; 
•Retornarumainstância,dentremuitaspossíveisclasses, dependendodosdadosprovidosaele. 
•Tambémconhecidocomovirtualconstrutor;
Intenção 
•Épossívelcriarumobjetosemterconhecimentoalgumdasuaclasseconcreta? 
•Esseconhecimentodeveestaremalgumapartedosistema,masnãoprecisaestarnecessariamentenocliente. 
•FactoryMethoddefineumainterfacecomumparacriarobjetos; 
•Oobjetoespecíficoédeterminadonasdiferentesimplementaçõesdessainterface; 
•FactoryMethodsãométodos(podemserestáticos)queretornamumainstânciadeumaclasse;
Intenção 
•Separaassim: 
•Uma"familia"declassesdotadasdamesmainterface("produtos");e 
•Umaclasse("fabrica")quepossuiummétodoespecial(ofactorymethod)quecriataisobjetos;
Motivação 
•Construirobjetosindividuaissemqueaconstruçãorequeiraconhecimentosdasclassesespecíficasqueestãosendoinstanciadas; 
•Criarumaclassedeabstraçãoquedecidequaldasopçõesdeclasseretornarsemqueaclasseretornadasejadeprévioconhecimento.
O Problema 
•Framework específico para uma aplicação que manipula documentos multimídia; 
•É possível criar um framework mais genérico, para qualquer aplicação de manipulação de documentos?
A Solução 
•Classesabstratasimplementamasfunçõescomunsatodotipodedocumento; 
•Métodofábricaédefinidonasuperclasseeimplementadonasubclasse.
Estrutura
A Lógica
Participantes 
•Product 
•DefineainterfacedosobjetosqueoFactoryMethodcria. 
•ConcreteProduct 
•Classesquevãoimplementarainterfacedefinidaemproduto. SãoasdiferentesClassesquepodemserinstanciadas;
Participantes 
•Creator 
•DeclaraoFactoryMethod(métododecriação)oqualretornaumobjetodotipoProduct(Produto).AFábricatambémpodedefinirumaimplementaçãobásicadoFactoryMethod,queretorneumobjetoProdutoCreatebásico. 
•ConcreteCreator 
•SobrescreveométododeproduçãopararetornarumobjetodaclasseConcreteProduct;
Aplicabilidade 
•UseFactoryMethodquando: 
•Umaclassenãopodeanteciparouconheceraclassedosobjetosquedevecriar; 
•Umaclassequersuassubclassesparaespecificarosobjetosquecria; 
•VocêprecisacriarumobjetomasvocênãoquerusaradiretivaNEWnaclassecliente;
Aplicabilidade 
Issoécomumnumaaplicaçãobemdesenhadaondevariáveissãoestruturadascombaseeminterfaces.Assim, váriostiposdeobjetosdiferentespodemserassociadasaessavariável.
Colaborações 
•Acriaçãodosobjetoséderesponsabilidadedaclassedeproduçãoquedeveretornarumobjetodeumaclasseapropriada; 
•AFábricadependedassuassubclassesparadefinirométodofábricademaneiraqueretorneumainstânciadaProdutoConcreto;
Consequências 
•MelhorExtensibilidade 
•Eliminaanecessidadedemontarumcódigoemfunçãoaumaclasseespecífica.Nonossoexemplodeaplicação,ocódigosólidacomumainterfacechamadaProduct. 
•Fornecerganchosparasubclasses 
•Essepadrãodeprojetodámaiorflexibilidadeparaasclasses, poiscriarumobjetoemumaclassequeutilizaoFactoryMethodémelhorquefazê-loemseparado,funcionando, assim,comoumaconexãoparaqueumadassubclassesforneçamumaversãoestendidadeumobjeto.
Desvantagens 
•Eventualmente,clientespodemterqueespecializaraclasseFabricaapenasparacriarumobjetoProdutoConcretoparticular;
Padrões Relacionados 
•Abstract Factory 
•TemplateMethod 
•Prototype
FactoryMethod-Exemplos
Exemplo 01 
SuponhaquenóstemosquedesenvolverumsistemadeconsultadeinformaçõesdeveículosCelta,palio,golevectra. Informamosqualcarroqueremosconsultarerecebemosasinformaçõessobreestescarros.Masnãoqueremosqueasclassesconcretasfiquemmuitoacopladasanossaclassecliente.
Diagrama
Solução
Solução
Solução
Solução
Solução
Exemplo 02 
Imagineaimplementaçãodeumsistemaparacontroledeumapizzaria.Apizzariadispõemdealgunstiposdepizza(pizzagregademoluscoestiloCajazeiras,pizzaportuguesaestiloSousa...),bemcomoosserviçosresponsáveisparafabricarumapizza(prepararapizza,assar,cortareempacotar); 
Problema... 
Aspizzasestãosendoinstanciadasnaclassecliente. 
Quandoclientequerprepararumanovapizza,elemesmoofaz.
Exemplo 02 
Cliente tem que preparar Pizza
Exemplo 02 
Oquefazerparasuprimirumapizzadaclasseprincipalouadicionarnovaspizzas? 
Oqueacontecesehouverváriospontosdeinstanciaçãodestaspizzas? 
ProblemadeACOPLAMENTO 
ClassesclientesdevemconhecerassubclassesdePizza. 
Mudançasnahierarquia(nonomedasclassesporexemplo) provocammudançasemtodosospontosdeinstanciaçãodaspizzas. 
Podehavermuitospontosdependendodosistema.
Exemplo 02
Exemplo 02 
Solução 
ENCAPSULARacriaçãodasPizzasemoutroobjetoquesabecomocriarinstanciarobjetosdassubclassespizzas. 
Dessamaneiratodocódigoqueforinstanciarpizzas,utilizaaclassefábrica(pizzaria)paracriarestesobjetos. 
Baixoacoplamento,jáquemudançasnasclassessãoabsorvidaspelafábrica; 
SomentefábricaconheceasPizzasconcretas;
Exemplo 02
Solução
Solução
Solução
Solução
Solução
Solução
Exemplo 03 
Imagineaseguintesituação: 
Desenvolverumsistemaderadarqueexecutaasseguintesoperações:enviaumsinalparacentraldecontrole,corrigirotempoverificaçãoeprocessarosinalcapturado.Sabendoqueoterrenoexercegrandeinfluêncianomododeoperaçãoeprocessamentodoradar.Ouseja,emterrenosplanos,aquáticosemontanhososoradarvaiapresentarcomportamentosdistintos.
Diagrama
Solução
Solução
Solução
Solução
Solução
Atividade 
Imaginequevocêfoicontratadoparadesenvolverjogodeestratégia.Nestejogonóstemostrêsinimigosozumbi, FeiticeiroeoTrollqueataca,virapraesquerda,virapradireita,andaprafrenteeparatrás. 
Imaginequetemosqueinstanciaressesobjetosnanossaaplicaçãodemaneiraqueocódigoclientenãofiquemuitoacopladoasclassesconcretas.
Diagrama
Solução
Solução
Solução
Solução
Solução
Patterns: Factory Method
Patterns: Factory Method

Más contenido relacionado

La actualidad más candente

La actualidad más candente (12)

Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
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
 
Java aula 03
Java aula 03Java aula 03
Java aula 03
 
Java aula 06
Java aula 06Java aula 06
Java aula 06
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Patterns
PatternsPatterns
Patterns
 
GoF Design Patterns - Borland Conference (BorCon) 2004
GoF Design Patterns - Borland Conference (BorCon) 2004GoF Design Patterns - Borland Conference (BorCon) 2004
GoF Design Patterns - Borland Conference (BorCon) 2004
 
Design Patterns (MSDN Webcast)
Design Patterns (MSDN Webcast)Design Patterns (MSDN Webcast)
Design Patterns (MSDN Webcast)
 
Aula 1 5
Aula 1 5Aula 1 5
Aula 1 5
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 

Destacado

Destacado (8)

Factory Pattern
Factory PatternFactory Pattern
Factory Pattern
 
Design Patterns - Factory Method & Abstract Factory
Design Patterns - Factory Method & Abstract FactoryDesign Patterns - Factory Method & Abstract Factory
Design Patterns - Factory Method & Abstract Factory
 
Memento
MementoMemento
Memento
 
Memento pattern
Memento patternMemento pattern
Memento pattern
 
Memento pattern
Memento patternMemento pattern
Memento pattern
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 

Más de Fatinha de Sousa

Más de Fatinha de Sousa (12)

Cross Site Scripting
Cross Site Scripting Cross Site Scripting
Cross Site Scripting
 
Apresentação da ferramenta de Esteganografia JPHS
Apresentação da ferramenta de Esteganografia JPHSApresentação da ferramenta de Esteganografia JPHS
Apresentação da ferramenta de Esteganografia JPHS
 
Deep web
Deep webDeep web
Deep web
 
Banco de dados dbo4
Banco de dados dbo4Banco de dados dbo4
Banco de dados dbo4
 
Desenvolvimento em equipe
Desenvolvimento em equipeDesenvolvimento em equipe
Desenvolvimento em equipe
 
Principais Vírus de Computador
Principais Vírus de ComputadorPrincipais Vírus de Computador
Principais Vírus de Computador
 
Segurança Na Internet
Segurança Na InternetSegurança Na Internet
Segurança Na Internet
 
Segurança em redes
Segurança em redesSegurança em redes
Segurança em redes
 
Banco de Dados Multimidia
 Banco de Dados Multimidia Banco de Dados Multimidia
Banco de Dados Multimidia
 
Gerenciamento de Pessoas
Gerenciamento de PessoasGerenciamento de Pessoas
Gerenciamento de Pessoas
 
Estudo de Caso Windows
Estudo de Caso WindowsEstudo de Caso Windows
Estudo de Caso Windows
 
Patterns: Singleton
Patterns: SingletonPatterns: Singleton
Patterns: Singleton
 

Último

LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Centro Jacques Delors
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...SileideDaSilvaNascim
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosGentil Eronides
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubeladrianaguedesbatista
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptxMarlene Cunhada
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 

Último (20)

LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 

Patterns: Factory Method