menangani pembina kembung dalam suntikan ketergantungan
tandatangan pembina yang terlalu kompleks, seperti contoh ini:
<code>public MyClass(Container con, SomeClass1 obj1, SomeClass2 obj2, ... )</code>
) terus ke setiap kelas? Ini memudahkan pembina dengan ketara, tetapi ia datang dengan kelemahan yang ketara. Ia pada dasarnya mengubah bekas menjadi kilang statik yang dimuliakan. Container con
Masalah dengan statistik yang dimuliakan dan penyongsangan kawalan (IOC)
menggunakan bekas sebagai pencari perkhidmatan menjadikannya berkelakuan seperti titik akses statik global. Ini melanggar prinsip tanggungjawab tunggal, menjadikan ujian dan kebolehkerjaan lebih sukar. Kelas menjadi ketat untuk pelaksanaan bekas, menghalang fleksibiliti dan kebolehgunaan semula.
refactoring dengan perkhidmatan fasad
Kekuatan suntikan pembina terletak pada keupayaannya untuk menyerlahkan pelanggaran prinsip tanggungjawab tunggal. Apabila pembina menjadi sukar dikawal, ia adalah isyarat yang jelas untuk refactoring. Penyelesaiannya sering melibatkan mewujudkan perkhidmatan fasad.Perkhidmatan fasad memperkenalkan antara muka yang lebih tinggi, lebih abstrak. Antara muka ini menyembunyikan kerumitan berinteraksi dengan banyak kebergantungan halus. Ini menggalakkan kod yang lebih bersih, lebih mudah diurus dan meningkatkan kesesuaian.
Atas ialah kandungan terperinci Suntikan Ketergantungan: Mengapa tidak hanya menyuntik bekas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!