Mengapa DI: Kod Boleh Diuji dan Terpisah
Lihat masalah yang diselesaikan oleh Hilt.
Mengapa DI: Kod Boleh Diuji dan Terpisah ialah pelajaran Jetpack Compose Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Jetpack Compose Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Jetpack Compose Academy merangkumi sejumlah 4 pelajaran.
Apakah Suntikan Kebergantungan?
Suntikan kebergantungan bermaksud sesuatu kelas menerima objek yang diperlukannya dari luar, bukannya membinanya sendiri. Kurang kerja pendawaian, lebih banyak tumpuan. 🔌
Masalahnya: new di Mana-mana
Apabila sesuatu kelas memanggil new untuk kebergantungannya sendiri, kelas itu terikat pada jenis tersebut. Mengubah satu perkara memaksa Anda menyunting banyak fail.
class Repo {
private val api = ApiService() // hard-wired
}Suntik, Jangan Bina
Hantar kebergantungan melalui pembina dan biarkan perkara lain menciptanya. Kini kelas Anda hanya menyatakan perkara yang diperlukannya, bukan cara membinanya.
class Repo(private val api: ApiService) {
// api is given to us
}Pemisahan Kebergantungan Secara Nyata
Dengan suntikan, kod Anda bergantung pada antara muka, bukan kelas konkrit. Anda boleh menggantikan pelaksanaan sebenar dengan pelaksanaan lain tanpa menyentuh pengguna.
interface ApiService { fun load(): String }
class Repo(private val api: ApiService)Kebolehujian ialah Kelebihan Utama
Dalam ujian, Anda hanya perlu menghantar kebergantungan palsu. Tiada rangkaian, tiada pangkalan data, tiada kejutan—hanya pemeriksaan yang pantas dan boleh dijangka. ✅
val fake = object : ApiService { override fun load() = "hi" }
val repo = Repo(fake)DI Manual Menjadi Leceh
Anda boleh melakukan suntikan secara manual, tetapi menyambungkan graf yang mendalam bermakna menulis banyak kod berulang. Setiap kebergantungan baharu merambat naik melalui pembina.
val api = ApiService()
val repo = Repo(api)
val vm = MyViewModel(repo) // by handPerkenalkan Hilt
Hilt ialah pustaka DI yang disyorkan untuk Android. Hilt menjana pendawaian untuk Anda pada masa kompilasi, jadi Anda hanya menerangkan keperluan dan Hilt membina graf tersebut.
Hilt Dibina Berasaskan Dagger
Hilt dibina berasaskan Dagger tetapi menambah lalai yang memahami Android. Anda mendapat keselamatan masa kompilasi dengan persediaan yang jauh lebih sedikit berbanding Dagger mentah.
Tandakan Aplikasi Anda
Hilt bermula pada akar aplikasi. Anotasikan kelas Application Anda dengan @HiltAndroidApp untuk menjana bekas kebergantungan peringkat teratas.
@HiltAndroidApp
class MyApp : Application()Suntik Dengan @Inject
Tambahkan @Inject pada pembina dan Hilt akan mengetahui cara mencipta jenis tersebut. Selepas itu, Hilt boleh membekalkannya di mana-mana sahaja ia diperlukan.
class Repo @Inject constructor(private val api: ApiService)Keselamatan Masa Kompilasi
Jika kebergantungan tiada, Hilt gagal pada masa kompilasi, bukan semasa masa jalan. Anda dapat mengesan kesilapan pendawaian sebelum aplikasi dihantar kepada pengguna. 🛡️
Semakan Pantas
Manfaat manakah yang paling tepat menjelaskan sebab kita menggunakan suntikan kebergantungan?
Imbas Kembali: Mengapa DI Penting
Anda telah mempelajari bahawa DI memberikan kebergantungan kepada kelas, memisahkan kod dan menjadikan ujian mudah. Hilt mengautomatikkan pendawaian itu pada masa kompilasi. 🎉
Pelajari Kotlin dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Mengapa DI: Kod Boleh Diuji dan Terpisah” percuma?
Ya — teks penuh “Mengapa DI: Kod Boleh Diuji dan Terpisah” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Jetpack Compose Academy, tingkat taraf kepada CoddyKit PRO. Kursus Jetpack Compose Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengapa DI: Kod Boleh Diuji dan Terpisah”?
Lihat masalah yang diselesaikan oleh Hilt. Anda berlatih Jetpack Compose Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Jetpack Compose Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Jetpack Compose Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Mengapa DI: Kod Boleh Diuji dan Terpisah” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Jetpack Compose Academy ini?
Ya. Setiap pelajaran Jetpack Compose Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mengapa DI: Kod Boleh Diuji dan Terpisah
- Modul, @Provides & @Binds
- hiltViewModel & @HiltViewModel
- Skop & Jangka Hayat Komponen