Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 4 da Aula 8 - Façades e Singletons

Fiquei um pouco confuso a respeito da afirmação de que singletons teriam os mesmos problemas que "variáveis globais no mundo procedural". Alguém saberia dizer quais problemas seriam esses?

2 respostas

Eduardo , Bom dia !!

os problemas seria que em qualquer parte do seu código você pode chamar a instancia do método ,fazendo com que o qualquer um tem acesso aos dados da classe , pois é um método estático.

não é possível inibir a classe para o resto do programa .

Espero ter ajudado . Bons Estudos

solução!

Olá Eduardo! O problema é em termos de acoplamento e de Escopo. Veja bem, utilizando o singleton você estará acoplando seu código a uma implementação estática especifica, seu código se torna dependente dessa classe. Quanto ao fato do escopo, o Singleton praticamente elimina isso pois, como foi dito no exercício, ele se assemelha a uma variável global, ou seja, pode ser acessado de qualquer parte de seu código. Isso também gera uma vulnerabilidade de seu código, pois qualquer parte de seu código pode acessar um objeto (Singleton). Ou seja, caso você crie uma aplicação todo usuário da sua aplicação terá acesso a esse Objeto e dependendo da regra de negócio de seu código isso gera uma vulnerabilidade ao seu código.

Há uma discussão em termos de desenvolvimento sobre o Singleton. Muitos ja consideram o Singleton como um Anti Pattern, ou seja, uma não solução para problemas de desenvolvimento. Atualmente, substitui-se o Singleton por Injeção de Dependências (DI).

Espero ter ajudado! Bons Estudos!