SlideShare uma empresa Scribd logo
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.”
Patterns: Singleton
Patterns: Singleton
Patterns: Singleton
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

Mais conteúdo relacionado

PPTX
Introdução à Metaprogramação com Java Reflection API
PPT
Padrão de Projetos singleton
PDF
Singleton - Padrão de Projeto
PPT
pec-12-patterns-intro.ppt
PPT
Patterns
PPT
Gof design patterns
DOC
Travalho versao final
PDF
Cross Site Scripting
Introdução à Metaprogramação com Java Reflection API
Padrão de Projetos singleton
Singleton - Padrão de Projeto
pec-12-patterns-intro.ppt
Patterns
Gof design patterns
Travalho versao final
Cross Site Scripting

Mais de Fatinha de Sousa (11)

PDF
Apresentação da ferramenta de Esteganografia JPHS
PDF
PPTX
Banco de dados dbo4
PDF
Desenvolvimento em equipe
PDF
Principais Vírus de Computador
PDF
Segurança Na Internet
PDF
Segurança em redes
PDF
Banco de Dados Multimidia
PDF
Gerenciamento de Pessoas
PDF
Estudo de Caso Windows
PDF
Patterns: Factory Method
Apresentação da ferramenta de Esteganografia JPHS
Banco de dados dbo4
Desenvolvimento em equipe
Principais Vírus de Computador
Segurança Na Internet
Segurança em redes
Banco de Dados Multimidia
Gerenciamento de Pessoas
Estudo de Caso Windows
Patterns: Factory Method
Anúncio

Último (20)

PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PDF
embriologia_animal_aula_share_2026_semestre
PPT
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PDF
Metabolismo_energético_3ano_pre_vest_2026.pdf
PPTX
A História da Europa na Baixa Idade Média.pptx
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PDF
O retorno a origem (islã Islamismo)
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPT
História e Evolução dos Computadores domésticos
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PPTX
Reino Monera e Protista: representantes e caracteristicas.pptx
NR11 - Treinamento Direcao Defensiva - 2023.pptx
Filosofia Ocidental Antiga 2025 - versão atualizada
embriologia_animal_aula_share_2026_semestre
HISTOLOGIA VEGETAL - tecidos vegetais.ppt
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
Metabolismo_energético_3ano_pre_vest_2026.pdf
A História da Europa na Baixa Idade Média.pptx
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
Pedagogia em Ambientes Não Escolares.pptx
O retorno a origem (islã Islamismo)
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
Aula 13 - Tópico Frasal - Argumentação.pptx
saeb_documentos_de_referencia_versao_1.0.pdf
História e Evolução dos Computadores domésticos
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
Reino Monera e Protista: representantes e caracteristicas.pptx
Anúncio

Patterns: Singleton