Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Dependency Injection mengambil level pemisahan yang dimulai dengan Prinsip Dependency Inversion satu langkah lebih jauh. Dependency Injection memiliki konsep assembler – atau yang di Java umumnya dirujuk sebagai suatu Factory – yang menginstansiasi objek-objek yang dibutuhkan oleh suatu aplikasi dan “menginjek” mereka ke dalam objek-objek yang membutuhkannya.
Pada kasus framework dependency injection-informed seperti Spring, komponen-komponen dikoding ke interface, seperti pada contoh DIP yang disertakan sebelumnya. Tetapi sekarang kontainer IoC memanage instansiasi, manajemen dan casting class dari objek-objek yang diimplementasikan sehingga aplikasi tidak harus melakukan hal tersebut. Hal ini menghilangkan ketergantungan apapun pada class-class level rendah yang diimplementasikan.
Ada tiga tipe Dependency Injection yang diguanakn oleh penyedia kontainer IoC
Table 1. Dependency Injection Types
Tipe DI | Deskripsi |
---|---|
Constructor Injection | Argumen Konstruktor diinjek saat instansiasi instance |
Setter Injection | Ini adadalah metode yang paling sering digunakan. Dependency diset di objek melalui metode setter yang didefinisikan di dalam file konfigurasi Spring. |
Interface Injection | Ini tidak diimplementasikan oleh Spring saat ini, tetapi oleh Avalon. Dia merupakan tipe DI yang melibatkan item-item mapping untuk menyuntikkan ke interface tertentu. |
Spring menggunakan konsep BeanFactory
sebagai assemblernya, dan adalah BeanFactory
yang mengatur JavaBeans yang telah kita konfigurasi untuk berjalan dengannya. Pada bagian berikutnya kita akan membahasa tentang kontainer Spring IoC dan bagaimana membuatnyanya menggunakan pola dependency injection untuk membuat kode kita bebas RFI dan semakin baik.
Leave a Reply