Logo ms.removalsclassifieds.com

Perbezaan Antara Suntikan Pembina dan Suntikan Setter (Dengan Jadual)

Isi kandungan:

Anonim

Apabila resolusi pergantungan dibuat oleh ejen luar dan bukannya kelas itu sendiri, maka ia dikenali sebagai suntikan pergantungan. Terdapat dua cara standard suntikan pergantungan yang disokong dalam rangka kerja Spring, melalui hujah pembina atau melalui menggunakan kaedah penetap. Jenis suntikan pergantungan dahulu dikenali sebagai suntikan pembina, dan yang terakhir dikenali sebagai suntikan penetap. Kedua-dua kaedah digunakan untuk tujuan yang berbeza dan mempunyai kebaikan dan keburukan mereka sendiri.

Suntikan Pembina lwn Suntikan Setter

Perbezaan antara suntikan Pembina dan suntikan Setter ialah suntikan pembina menggunakan pembina, dan sebaliknya, suntikan penetap menggunakan kaedah penetap untuk menyuntik pergantungan. Kedua-dua jenis cara suntikan ini berbeza antara satu sama lain berdasarkan beberapa parameter seperti keselamatan, kebolehbacaan, menyokong kebolehubah, dan sebagainya.

Suntikan pembina ialah sejenis suntikan kebergantungan dalam rangka kerja spring yang menggunakan pembina untuk menyuntik kebergantungan. Kebergantungan yang diperlukan untuk mana-mana kelas ditentukan sebagai parameter pembina kelas tertentu itu. Suntikan pembina tidak membenarkan pembangun membina sebarang objek melainkan semua kebergantungan sedia, dan dengan itu, ia memastikan suntikan kebergantungan berjaya.

Suntikan setter ialah sejenis suntikan kebergantungan dalam rangka kerja spring yang menggunakan kaedah setter untuk menyuntik kebergantungan. Ia mempunyai kaedah penetap dalam borang setXXX() di mana XXX menandakan kebergantungan yang menyuntik objek bergantung ke dalam klien. Cara menyelesaikan pergantungan ini sangat biasa dalam rangka kerja Spring.

Jadual Perbandingan Antara Suntikan Pembina dan Suntikan Setter

Parameter Perbandingan

Suntikan Pembina

Suntikan Setter

Kebergantungan disuntik Ia menggunakan pembina. Ia menggunakan kaedah penetap.
Kebolehbacaan Ia tidak banyak dibaca berbanding dengan setter. Ia lebih mudah dibaca.
Tolak harta benda Tidak boleh mengatasi pergantungan. Boleh mengatasi kebergantungan tertentu.
Perubahan Ia sentiasa mencipta contoh kacang baharu. Ia tidak mencipta sebarang contoh kacang baharu.
Ketidakbolehubahan Ia menyokong kebolehubahan. Ia tidak menyokong.

Apakah Suntikan Pembina?

Suntikan pembina ialah salah satu cara standard untuk menyelesaikan kebergantungan dalam rangka kerja Spring, yang mentakrifkan secara statik senarai kebergantungan yang diperlukan untuk kelas dengan menetapkannya sebagai parameter kepada pembina kelas. Semua kelas yang memerlukan pergantungan mestilah mempunyai pembina awam di dalamnya, yang mengambil contoh sebagai hujah pembina, dan pembina itu semestinya satu-satunya pembina awam di dalam kelas itu.

Jika terdapat keperluan untuk lebih daripada satu pergantungan, maka hujah tambahan harus ditambah kepada pembina yang sama. Untuk memastikan kebergantungan itu disuntik sepenuhnya, satu prinsip tanggungjawab harus dipatuhi, yang menyatakan bahawa ahli perlu melakukan hanya satu perkara. Pembina harus dibebaskan daripada sebarang logik lain untuk menjadikan pembina kelas lebih pantas dan lebih dipercayai.

Satu fakta penting suntikan pembina ialah objek tidak akan dibina melainkan semua kebergantungan sudah sedia. Memandangkan ia mencipta kejadian baharu setiap kali pembina dipanggil demikian, penggantian tidak boleh dilakukan di dalamnya. Suntikan pembina pada asasnya digunakan dalam kes apabila terdapat keperluan untuk mencipta objek dengan semua kebergantungan. Ini ialah cara yang paling biasa digunakan dan paling mudah untuk melaksanakan kebergantungan dengan betul.

Apakah Suntikan Setter?

Suntikan penetap ialah salah satu cara standard untuk menyelesaikan pergantungan dalam rangka kerja Spring, yang menggunakan kaedah penetap untuk menyelesaikan pergantungan. Kaedah penetap adalah dalam bentuk setXXX(), di mana XXX menentukan kebergantungan yang perlu disuntik. Dalam kaedah suntikan jenis ini, pertama, objek dicipta, dan kemudiannya, kebergantungan disuntik. Untuk mengkonfigurasi Spring, fail XML digunakan, dan oleh itu, kebolehbacaan adalah kebimbangan besar.

Memandangkan kaedah penetap mempunyai bentuk nama kaedah yang ditentukan, ia meningkatkan kebolehbacaan dalam banyak cara. Apabila terdapat keperluan untuk menyuntik bilangan tanggungan yang lebih besar, maka jenis suntikan penetap sangat digemari dan diutamakan berbanding kaedah suntikan jenis lain. Di samping itu, dengan menggunakan suntikan penetap, pembangun boleh mengatasi dan menukar nilai dengan mudah kerana ia tidak mencipta contoh kacang baharu setiap kali. Satu-satunya kelemahan suntikan penetap ialah ia tidak memastikan suntikan pergantungan yang lengkap.

Tidak ada jaminan sama ada objek tertentu mempunyai kebergantungan yang disuntik atau tidak. Dalam erti kata lain, ini bermakna bahawa mungkin terdapat objek dengan pergantungan yang tidak lengkap. Suntikan penetap ialah cara yang paling fleksibel dan paling biasa untuk melaksanakan suntikan pergantungan.

Perbezaan Utama Antara Suntikan Pembina dan Suntikan Setter

Kesimpulan

Intinya ialah kedua-dua cara menyuntik kebergantungan membiarkan sama ada suntikan pembina atau suntikan penetap, mempunyai kebaikan dan keburukan mereka sendiri. Di samping itu, Spring tidak menghalang pembangun daripada menggunakan sesiapa kecuali penilai. Mereka bebas menggunakan suntikan pembina dan suntikan penetap dalam satu fail konfigurasi Spring. Perkara penting yang perlu diingat semasa menyuntik kebergantungan ialah menggunakan suntikan pembina apabila terdapat keperluan wajib untuk mencipta objek dengan semua kebergantungan dan menggunakan suntikan penetap apabila bilangan kebergantungan lebih banyak atau jika terdapat keperluan untuk lebih baik. kebolehbacaan.

Rujukan

  1. https://digitalcommons.calpoly.edu/csse_fac/34/
  2. https://books.google.com/books?hl=ms&lr=&id=InfRDwAAQBAJ&oi=fnd&pg=PA63&dq=constructor+injection&ots=Hon_bCw-Kv&sig=VdsD_S0lCfP3D8idI8q4F6RnhoE

Perbezaan Antara Suntikan Pembina dan Suntikan Setter (Dengan Jadual)