GoF Singleton


Histórico de versão

Data Versão Descrição Autor(es)
05.04.2021 0.1 Criação do documento Bruna Almeida
Damarcones Porto
Isabella Carneiro
05.04.2021 1.0 Adição do diagrama UML Bruna Almeida
Damarcones Porto
Isabella Carneiro
Lucas Lopes

Participantes

  • Bruna Almeida
  • Damarcones Porto
  • Isabella Carneiro
  • Lucas Lopes

Introdução

O Padrão Singleton, que pertence à categoria dos Padrões Criacionais, tem como objetivo fornecer um ponto único de acesso à instância de um objeto, de modo que qualquer local da aplicação consiga acessá-lo. Para evitar uma redundância de criação e liberação de objetos, pode-se utilizar um Singleton: O objeto da classe será criado apenas uma vez e essa mesma instância será utilizada por todos os locais que a solicitarem. O singleton garante um ponto global de acesso ao seu objeto.

As vantagens de usar o Padrão Singleton incluem uma redução de processamento ao criar e liberar objetos constantemente, o que contribui para o desempenho do sistema; e, por representar um único objeto, é possível compartilhar dados entre telas.


Metodologia

A documentação e modelagem do padrão Singleton foi desenvolvida a partir de uma reunião com alguns integrantes, na plataforma Discord. Além disso, o diagrama UML foi desenvolvido pelos integrantes através da plataforma Draw.io.


Aplicação no projeto

O projeto utiliza este padrão principalmente nas funcionalidades que necessitam de um tipo de autenticação. Nos exemplos a seguir estão implementadas as classes SpringFoxConfig e JwtAuthenticationEntryPoint, que envolvem segurança de acesso.



Figura 1 - Representação da classe SpringFoxConfig.


Figura 2 - Representação da classe JwtAuthenticationEntryPoint


Modelagem UML

O diagrama UML representa a forma como o padrão está sendo empregado no projeto, exemplificando o uso da SpringFoxConfig.


Figura 3 - Representação UML da classe JSpringFoxConfig


Referências

DEVMEDIA, Padrão de Projeto Singleton em Java Disponível em https://www.devmedia.com.br/padrao-de-projeto-singleton-em-java/26392 Acesso em 1 de abril de 2021.

ANDRÉ CELESTINO, [Delphi] Design Patterns GoF – Singleton. Disponível em https://www.andrecelestino.com/delphi-design-patterns-singleton/ Acesso em 5 de abril de 2021.

MEDIUM, Singleton Design Pattern. Disponível em https://medium.com/rafaelantoniolucio/singleton-design-pattern-3e903f625265 Acesso em 5 de abril de 2021.