sql >> Database >  >> RDS >> Mysql

Zou singleton een goed ontwerppatroon zijn voor een microblogsite?

Het doel van de Singleton is om objectinstanties tot één exemplaar te beperken en globale toegang te bieden.
Beide zijn dingen die u niet wilt of nodig hebt.

Uw instantie beperken tot één instantie is nogal zinloos in PHP waar deze beperking alleen van toepassing is op de instanties in de huidige verzoek. Als twee verzoeken tegelijkertijd uw microblogging-site bereiken, is er nog steeds één exemplaar per verzoek. Als u er zeker van wilt zijn dat er alleen een instantie is, moet u gewoon geen tweede instantie maken.

Globale toegang is ook niets dat u wilt, omdat het de inkapseling doorbreekt. Als je een bepaalde instantie in je objecten nodig hebt, geef deze dan door via afhankelijkheid injectie . Dat is schoon en onderhoudbaar. Het heeft als bijkomend voordeel dat je gemakkelijk afhankelijkheden kunt uitwisselen met andere implementaties, zoals bijvoorbeeld mock-klassen voor uw eenheidstests .

Zelfs Erich Gamma , een van de uitvinders van het Singleton-patroon, zet vraagtekens bij dit patroon:

Je kunt Singletons het beste vermijden.



  1. PostgreSQL - haal de rij op met de maximale waarde voor een kolom

  2. Optimizer-beperkingen met gefilterde indexen

  3. PostgreSQL samengestelde primaire sleutel

  4. CodeIgniter:kan geen verbinding maken met uw databaseserver met behulp van de opgegeven instellingen Foutbericht