SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Padrão de Criação de ObjetosSingleton 
InstitutoFederaldeEducação,CiênciaeTecnologiadaParaíba–campusCajazeiras 
Curso:AnáliseeDesenvolvimentodeSistemas 
Professor:RodrigoAraújo 
Disciplina:PadrõesdeProjeto 
Fátima Ferreira 
Sérgio Diniz
Uma definição de Singleton
Umjeitofácildeacessarumainstânciadeclasseglobal. Singleton
Exemplo de motivação
Exemplo de motivação
Padrão Singleton 
Éimportanteparaalgumasclassesteruma,eapenasuma, instância. 
Emborapossamexistirmuitasimpressorasemumsistema, deveriahaversomenteumspoolerdeimpressoras;
Padrão Singleton -Intenção 
OPadrãoSingletonéumpadrãocriacional; 
Garantirqueumaclassetenhasomenteumainstânciaefornecerumpontodeacessoglobalparaamesma; 
Qualafuncionalidadedisso? 
Objetosquetratamdepoolsdeconexão,saídasgráficas, impressão,objetosquecuidamderegistrosnãodevemserinstanciadosmaisdeumavez 
UmoutrousodopadrãoSINGLETONéquandoqueremosumaclassedeLogparatodoosistema,semprecisarmosutilizarrecursosdosistemaparainstanciarumaclassesemprequeprecisarmosgravardadosnoservidor.
Padrão Singleton -Motivação 
Algunsprogramadoresdevemestarpensandoagora: 
Masissoéfácil!Bastaeuterumavariávelglobalcomainstânciadoobjetoesempreacessarela!
Oproblemaéqueessavariávelsendoinicializadanocomeçodaexecuçãodoprojeto,essaclasseestaráconsumindorecursosmesmosemserutilizada! 
ComoSingleton,aclassesóéinstanciadaquandovocêrealmenteprecisadela! 
Padrão Singleton -Motivação
Padrão Singleton -Motivação 
Comoprevenirqueumobjetonãosejainstanciadomaisdeumavez?
Padrão Singleton -Motivação 
Criarumconstrutorprivado.Comisso,aclassesópodeserinstanciadadentrodealgumdosseusprópriosmétodos! 
Melhor maneira de tornar a classe responsável por manter o controle da sua única instância;
Padrão Singleton -Aplicabilidade 
UseopadrãoSingletonquando: 
◦Forprecisohaverapenasumainstânciadeumaclasse,eessainstânciativerquedaracessoaosclientesatravésdeumpontobemdefinido; 
◦Aúnicainstânciativerdeserextensívelatravésdesubclasses,possibilitandoaosclientesusarumainstânciaestendidasemalteraroseucódigo;
Padrão Singleton -Estrutura
Lógicadaclasse:"Seomeuatributoinstanceédiferentedenullretornoelesenãovouinstanciareleeretorná-lo.AssimapróximachamadaagetInstance()vairetornaromesmoobjeto,independentedesenachamadaanterioreleeraounãodiferentedenulletodasaspróximaschamadas, enquantodureaaplicaçãosempreretornaráomesmoobjeto." 
Padrão Singleton -Estrutura
Padrão Singleton -Participantes 
◦AclasseSingletonseráaclassecujocontroledeinstânciaúnicaseráaplicado.Elapossuicomoresponsabilidadesocontroledacriaçãodaúnicainstância,eproveropontodeacessoaessainstância. 
◦OsclientessãotodasasoutrasclassesqueirãoacessarainstânciaúnicaatravésdométodogetSingleton()daclasseSingleton.
Padrão Singleton -Colaborações 
•Nessepadrãodeprojeto,irãoocorreriteraçõesentreaclasseSingletoneosclientes.AclasseSingletonpossuiummétodoestáticogetSingleton()queforneceaosclientesaúnicainstânciadaclasse.Dessemodo,garantimosaexistênciadeumpontoúnicodeacessoaesseobjeto. 
•Paragarantirmosqueoobjetosejaúnicoduranteaexecução, devemosdesabilitaroacessoaoconstrutordaclasseporoutrasclasses.AúnicaclassequedevepossuiracessoaoconstrutoréaprópriaclasseSingleton,enenhumaoutra.Issopodeserfeitotornandooconstrutordaclasseprivado.
Padrão Singleton -Consequências 
Acessocontroladoainstânciaúnica 
◦Aprópriaclasseencapsulasuainstânciaúnicae,portanto,temestritocontrolesobrecomoequandoosclientesaacessam; 
Reduçãononamespace 
◦OSingletonéumaalternativaeficienteàsvariáveisglobais.Evitapoluironamespacecomvariáveisglobaisquearmazenaminstânciasúnicas; 
Permiteumnúmerovariáveldeinstâncias 
◦PodepermitiracriaçãodemaisdeumainstânciadoSingletonouatécontrolaronúmerodeinstânciasexistentes.Somenteaoperaçãoinstance()precisasermodificada;
•AimplementaçãodopadrãoSingletonébastantesimples. Paratal,devemosprimeiroadicionarumavariávelestáticadomesmotipodaclassenaprópriaclasse.Essavariáveldeveráserprivada,paraevitarqueoutrasclassespossammodificá-la; 
•Aseguir,devemosadicionarummétodopúblicoeestáticogetSingleton()àclasse,queiráverificarseainstânciafoicriada.Senãofoicriadaainda,essemétodoirácriarela.Porfim,essemétodoretornaainstânciaarmazenada. 
Padrão Singleton -Implementação
•Paragarantirqueainstânciasejaúnica,equenenhumclientepossacriarumanovainstanciadaclasseSingleton, devemosprotegeroconstrutordaclasse,paraqueapenasométodogetSingleton()possacriarumanovainstância. 
•QualquerclasseclienteiráfazerumachamadaaométodoestáticogetSingleton()paraobterainstânciaúnicadaclasse.Nomomentoemqueforfeitaaprimeirachamadaaométodoainstânciaserácriada.Naschamadasseguintes, amesmainstânciaseráretornada. 
Padrão Singleton -Implementação
Padrões Relacionados 
VáriospadrõespodemserimplementadosUtilizandoSingleton,emparticular: 
◦AbstractFactory; 
◦Builder; 
◦Prototype;
Padrão Singleton -Exemplos
Exemplo 01 
•Imagineaseguintesituação: 
•ImaginequetenhamosumJanela,essaserianossaclasse, chamadaJanela...
Suponhamosquetemosduasfunções(quechamamosdemétodos),seriamAbrir()eFechar(); 
Então... 
Exemplo 01 
Aquestãoéqueparapodermosacessarumaclasseeseusmétodos/atributostemosqueinstanciá-la.
 Até aí tranquilo? Mas há um problema . 
 Toda vez que tivermos que abrir ou fechar essa janela, vamos ter que 
instanciar? 
Exemplo 01
Exemplo 01 –Solução Singleton
Exemplo 02 
•“Imagineumaaplicaçãoondesefaznecessáriocriarumarquivodelogpararegistrarquandousuáriologanosistema.”
Solução
Solução
Exemplo 03 
•Imagine a seguinte situação 
•“Suponhaquevocêdevetrabalharemumprojetocomputacionalparaumadeterminadafabricadecarros,osistemacadastrarcarrosdaFordedaFiat,edevecontrolaraquantidadedecarrosfabricados,egerarumrelatórioinformandoessesdados.Contudo,nãoécabívelqueexistamaisdoqueumafábricadecarrospararealizaressecontrole.”
Atividade 
Imagine a seguinte situação: 
◦“Gostariadecriarumaclassequegerasseumaconexãocommeubancodedados.Quandoeuacessaraprimeiravezessaclasse,seráconstruídaumaconexão,masnodecorrerdaexecução,casoexistamaisacessosaobanco,gostariadeutilizaraMESMAclassecomaMESMAconexão."
Atividade
Patterns: Singleton
Patterns: Singleton
Patterns: Singleton
Patterns: Singleton
Patterns: Singleton

Más contenido relacionado

Más de Fatinha de Sousa

Más de Fatinha de Sousa (6)

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: Factory Method
Patterns: Factory MethodPatterns: Factory Method
Patterns: Factory Method
 

Último

O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAJulianeMelo17
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
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
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
Aula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptAula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptPedro Luis Moraes
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioDomingasMariaRomao
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxandrenespoli3
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeitotatianehilda
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 

Último (20)

O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
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
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Aula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptAula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.ppt
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

Patterns: Singleton