Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

php conexão de banco de dados singleton, este código é uma prática ruim?


Singletons são más notícias.
  • Eles introduzem o estado global em um programa. A maioria dos programadores deve estar familiarizada com o motivo pelo qual o estado global é ruim.
  • Eles introduzem um acoplamento rígido entre o singleton e qualquer classe que o utilize. Isso significa que você não pode reutilizar as classes em questão sem reutilizar o singleton também.
  • Eles tornam o teste de unidade de classes que dependem do singleton problemático porque você não pode substituir facilmente o singleton por uma simulação.
  • Eles incentivam um estilo de codificação em que as classes tentam resolver suas próprias dependências. Isso é ruim porque pode reduzir a clareza sobre quais dependências a classe possui.
  • PHP tem uma arquitetura Share Nothing, o que significa que os singletons PHP não são realmente singletons, pode haver várias instâncias ativas a qualquer momento (uma por solicitação aberta).
  • O que acontece se você descobrir de repente em algum momento posterior que você realmente precisa de mais de um recurso que está sendo fornecido pelo singleton? É um cenário mais comum do que você imagina

É melhor dar uma olhada em em vez disso, pois resolve os problemas acima.