Tujuan Singleton adalah untuk membatasi instance objek menjadi satu dan menyediakan akses global.
Keduanya adalah hal yang tidak Anda inginkan atau butuhkan.
Membatasi instance Anda ke satu instance agak tidak berguna di PHP di mana pembatasan ini hanya berlaku untuk instance di saat ini meminta. Jika dua permintaan masuk ke situs microblogging Anda secara bersamaan, masih akan ada satu permintaan untuk masing-masing permintaan. Jika Anda ingin memastikan hanya ada instance, jangan membuat instance kedua.
Akses global juga tidak Anda inginkan, karena merusak enkapsulasi. Jika Anda memerlukan instance tertentu di dalam objek Anda, berikan melalui injeksi ketergantungan . Itu bersih dan dapat dipelihara. Ini memiliki manfaat tambahan yang memungkinkan Anda bertukar dependensi dengan mudah dengan implementasi lain, seperti misalnya kelas tiruan untuk pengujian unit Anda .
Bahkan Erich Gamma , salah satu penemu pola Singleton, mempertanyakan pola ini saat ini:
Sebaiknya Anda menghindari Lajang.