SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Mehr von 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
 

Kürzlich hochgeladen

Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
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
rfmbrandao
 
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
azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 

Kürzlich hochgeladen (20)

P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
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
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
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
 
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
 
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
 
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
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 

Patterns: Singleton