Saya refactoring aplikasi PHP , dan saya coba lakukan memiliki injeksi ketergantungan (DI) sebanyak mungkin.
Saya merasa memiliki pemahaman yang baik tentang cara kerjanya, dan tentu saja saya bisa melihat kelas saya menjadi jauh lebih ramping dan lebih kuat.
Saya refactoring sehingga saya dapat menyuntikkan ketergantungan daripada membuat objek baru di dalam kelas, tetapi pada titik tertentu saya harus membuat beberapa objek, yaitu, menggunakan new
kata kunci yang ditakuti .
Masalah yang saya hadapi sekarang adalah pada titik mana saya bisa benar-benar membuat objek baru? Sepertinya saya akan berakhir di kelas tingkat atas, membuat banyak objek baru karena tidak ada tempat lain untuk pergi. Ini terasa salah.
Saya telah membaca beberapa blog yang menggunakan kelas pabrik untuk membuat semua objek, dan kemudian Anda menyuntikkan pabrik ke kelas lain. Anda kemudian dapat memanggil metode pabrik, dan pabrik membuat objek baru untuk Anda.
Kekhawatiran saya dengan melakukan ini adalah sekarang kelas pabrik saya akan menjadi new
gratis-untuk-semua! Saya kira ini mungkin baik-baik saja karena mereka adalah kelas pabrik, tetapi apakah ada beberapa aturan yang harus dipatuhi ketika menggunakan pola pabrik dan DI, atau apakah saya akan jauh dari sasaran di sini?
new
. Tentu saja ada beberapa titik masuk di mana Anda perlu memanggil ke wadah IoC, tetapi seharusnya tidak banyak. Biasanya Anda mengkonfigurasi IoC sekali dan kemudian meminta satu kelas untuk diselesaikan per permintaan. Dalam kasus MVC itu biasanya controller.