Singletonens formål er at begrænse objektforekomster til én og at give global adgang.
Begge er ting, du ikke ønsker eller har brug for.
At begrænse din forekomst til én forekomst er ret meningsløst i PHP, hvor denne begrænsning kun gælder for forekomsterne i den aktuelle anmodning. Hvis to anmodninger rammer dit mikroblogging-site på samme tid, vil der stadig være én instans hver pr. anmodning. Hvis du vil sikre dig, at der kun er instans, skal du simpelthen ikke instansiere en anden instans.
Global adgang er heller ikke noget, du ønsker, for det bryder indkapslingen. Hvis du har brug for en bestemt instans inde i dine objekter, så send den ind via afhængighedsindsprøjtning . Det er rent og vedligeholdelsesvenligt. Det har den ekstra fordel, at det giver dig mulighed for nemt at udveksle afhængigheder med andre implementeringer, som f.eks. mock-klasser a> til dine enhedstests .
Selv Erich Gamma , en af Singleton-mønstrets opfindere, sætter spørgsmålstegn ved dette mønster i dag:
Det er bedst at undgå singletons.