Lajang adalah berita buruk.
- Mereka memperkenalkan negara global ke dalam sebuah program. Sebagian besar programmer harus mengetahui mengapa keadaan global itu buruk.
- Mereka memperkenalkan hubungan erat antara singleton dan kelas mana pun yang menggunakannya. Ini berarti Anda tidak dapat menggunakan kembali kelas yang dimaksud tanpa menggunakan kembali singleton juga.
- Mereka membuat pengujian unit kelas yang bergantung pada singleton bermasalah karena Anda tidak dapat dengan mudah mengganti singleton dengan tiruan.
- Mereka mendorong gaya pengkodean di mana kelas berusaha untuk menyelesaikan dependensi mereka sendiri. Ini buruk karena dapat mengurangi kejelasan tentang dependensi apa yang dimiliki kelas.
- PHP memiliki Arsitektur Bagikan Tidak Ada, artinya PHP lajang sebenarnya bukan lajang sama sekali, mungkin ada beberapa contoh yang hidup pada satu waktu (satu per permintaan terbuka).
- Apa yang terjadi jika Anda tiba-tiba menemukan di kemudian hari bahwa Anda sebenarnya membutuhkan lebih dari satu sumber daya yang disediakan oleh lajang? Ini adalah skenario yang lebih umum daripada yang mungkin Anda pikirkan
Anda sebaiknya melihat dependency-injection sebagai gantinya, karena ini menyelesaikan masalah di atas.