Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wäre Singleton ein gutes Designmuster für eine Microblogging-Site?

Der Zweck von Singleton besteht darin, Objektinstanzen auf eine zu beschränken und globalen Zugriff bereitzustellen.
Beides sind Dinge, die Sie nicht wollen oder brauchen.

Die Beschränkung Ihrer Instanz auf eine Instanz ist in PHP ziemlich sinnlos, da diese Beschränkung nur für die Instanzen in der aktuellen gilt Anfrage. Wenn zwei Anfragen gleichzeitig auf Ihrer Microblogging-Site eintreffen, gibt es immer noch jeweils eine Instanz pro Anfrage. Wenn Sie sicherstellen möchten, dass nur eine Instanz vorhanden ist, instanziieren Sie einfach keine zweite Instanz.

Globaler Zugriff ist auch nicht erwünscht, da er die Kapselung aufhebt. Wenn Sie eine bestimmte Instanz in Ihren Objekten benötigen, übergeben Sie diese über Abhängigkeitsinjektion . Das ist sauber und wartbar. Es hat den zusätzlichen Vorteil, dass Sie Abhängigkeiten leicht mit anderen Implementierungen austauschen können, wie zum Beispiel Mock-Klassen für Ihre unit tests .

Sogar Erich Gamma , einer der Erfinder des Singleton-Musters, stellt dieses Muster heutzutage in Frage:

Am besten vermeiden Sie Singletons.