Rumah > Soal Jawab > teks badan
淡淡烟草味2017-05-15 16:53:13
Suntikan kebergantungan: Semasa menjalankan program, jika anda perlu bekerjasama dengan objek lain (panggil kaedahnya, akses sifatnya), anda tidak perlu mencipta penerima dalam kod, tetapi bergantung pada suntikan bekas luar
Contoh berikut mungkin lebih menarik
Memahami Suntikan Ketergantungan:
Seseorang (contoh Java, pemanggil) memerlukan kapak (contoh Java, pemanggil)
Dalam masyarakat primitif, hampir tiada pembahagian kerja sosial; orang yang memerlukan kapak (pemanggil) hanya boleh mengisar kapak sendiri (situasi yang sepadan ialah: pemanggil dalam program Java mencipta callee sendiri , biasanya menggunakan kata kunci baharu untuk memanggil pembina untuk mencipta callee
Dalam masyarakat industri, kilang muncul, dan kapak tidak lagi disiapkan oleh orang biasa, tetapi dihasilkan di kilang Pada masa ini, orang yang memerlukan kapak (pemanggil) menemui kilang itu dan membeli kapak itu tanpa peduli tentang proses pembuatan kapak; Selaras dengan corak reka bentuk kilang yang mudah, pemanggil hanya perlu mencari kilang dan tidak perlu menguruskan pelaksanaan khusus pemanggil
Dalam masyarakat "komunis", orang yang memerlukan kapak tidak perlu mencari kilang, dan hanya boleh "duduk dan tunggu" untuk masyarakat menyediakannya; pelaksanaan penerima panggilan, abaikan kilang dan tunggu suntikan kebergantungan Spring
Ringkasnya, suntikan kebergantungan bermakna bahawa apa yang anda perlukan tidak dicipta oleh anda, tetapi diberikan kepada anda oleh pihak ketiga, atau bekas. Reka bentuk sedemikian mematuhi ortogonal, yang dipanggil gandingan longgar.
伊谢尔伦2017-05-15 16:53:13
Difahamkan secara peribadi, suntikan pergantungan bermakna pemanggil boleh mendapatkan kawalan komponen hanya dengan mengisytiharkan komponen dan pengurusan pergantungan, carian dan pemuatan komponen diselesaikan secara luaran.
Kerja ini dilakukan oleh $injector
dalam AngularJS.
Contohnya, saya menyuntik $http
ke dalam perkhidmatan dan memanggilnya dengan hehe
:
.service('myService',['$http',function(hehe) {
this.getUserActivities = function(username){
return hehe({
method: 'JSONP',
url:'https://api.github.com/users/'+username+'/events?callback=JSON_CALLBACK'
});
}
}])
PHP中文网2017-05-15 16:53:13
Suntikan kebergantungan bermakna anda tidak perlu risau tentang kitaran hayat objek, apabila ia dicipta, dan apabila ia dimusnahkan Anda hanya perlu menggunakannya secara langsung Kitaran hayat objek diuruskan rangka kerja yang menyediakan suntikan pergantungan.
世界只因有你2017-05-15 16:53:13
Izinkan saya menambah satu perkara: Suntikan ketergantungan dan penyongsangan kawalan sebenarnya adalah konsep yang sama.
@Wang_Bourne
http://www.cnblogs.com/kinglongdai/p/3269049.html
MOOC: http://www.imooc.com/video/4907
怪我咯2017-05-15 16:53:13
Pemahaman teori sentiasa terasa agak misteri, saya mengesyorkan anda melihat beberapa rangka kerja sumber terbuka untuk suntikan pergantungan, seperti RoboGuice Maaf, saya pergi ke pintu yang salah saya tidak membaca kategori RoboGuice adalah rangka kerja untuk android, tetapi prinsipnya adalah sama
巴扎黑2017-05-15 16:53:13
Dependency Injection (DI) juga dipanggil Inversion of Control (IoC), iaitu hubungan antara kelas dan kelas, kaedah dan kaedah dilakukan melalui pihak ketiga (seperti Injection" tidak memerlukan kelas atau kaedah kelas untuk menyelesaikan hubungan panggilan antara satu sama lain sendiri. Aplikasi tradisional biasanya secara aktif mencipta objek lain yang bergantung kepada kelas dalam kod pelaksanaan dalam kelas, mengakibatkan gandingan yang ketat antara kelas, menjadikan kelas sukar untuk diuji dan diasingkan, dan akhirnya menjadikan pengembangan dan penyelenggaraan sistem amat sukar. Suntikan kebergantungan digunakan untuk menyelesaikan kebergantungan, konfigurasi dan pengurusan kitaran hayat antara komponen Dengan memindahkan kawalan objek, ia boleh menyelesaikan masalah gandingan antara kelas Terdapat hubungan gandingan yang longgar antara objek menjadi sangat fleksibel, yang mencerminkan salah satu peraturan reka bentuk berorientasikan objek - prinsip reka bentuk pergantungan, prinsip Hollywood yang terkenal: "Jangan hubungi kami, kami akan hubungi anda. (Jangan hubungi kami, kami akan hubungi awak.
習慣沉默2017-05-15 16:53:13
angular.js mengandungi banyak idea ini.
sertakan var net = require('net');
Semuanya berwarna ungu.
天蓬老师2017-05-15 16:53:13
Suntikan Kebergantungan
Malah, ini bermakna ciri ciri objek semasa ditentukan oleh objek yang disuntik secara luaran.
Sebagai contoh, jika keluarga anda membuka kilang kasut, ia mempunyai kaedah menghasilkan kasut yang dipanggil make.
function shoes() {
this.make = function() {
....
}
}
Disebabkan permintaan pasaran, beberapa syarikat kasut sukan terkenal memerlukan kilang anda untuk mengeluarkannya.
function shoes(material) {
this.material = material;
this.make = function() {
....
}
}
Dengan cara ini, jika Nike memerlukan anda melakukan kerja OEM dan memberikan anda objek material Nike, anda boleh menghasilkan kasut sukan Nike kepada anda, dan anda boleh menghasilkan kasut mereka.
Iaitu, sama ada kasut yang dihasilkan oleh kilang kasut anda adalah dari A atau N, bergantung kepada sama ada A atau N menyediakan bahan anda.
怪我咯2017-05-15 16:53:13
Dalam pengaturcaraan berorientasikan objek, masalah yang sering kita hadapi ialah penyahgandingan Semakin rendah gandingan program, semakin tinggi kebolehbacaan dan kebolehselenggaraan program. Inversion of Control (IoC) ialah prinsip reka bentuk pengaturcaraan berorientasikan objek yang biasa digunakan. Menggunakan prinsip ini kita boleh mengurangkan gandingan. Suntikan kebergantungan ialah pelaksanaan penyongsangan kawalan yang paling biasa digunakan.
Lawatan terperinci untuk bercakap tentang suntikan pergantungan
为情所困2017-05-15 16:53:13
Pemahaman peribadi yang sangat mudah, suntikan kebergantungan sebenarnya tidak sukar, ia adalah perkara yang sangat semula jadi, kehidupan sebenar sebenarnya lebih sukar daripada pengaturcaraan:
Suntikan ketergantungan: Anda seorang, anda perlu Apabila anda pergi memburu, anda memerlukan pistol Pada masa ini, anda mempunyai dua pilihan. Pilihan kedua ialah membelinya di kedai Ini adalah suntikan kebergantunganKerana ia disuntik ke dalam anda dari luarDengan membeli, anda boleh menyelesaikan masalah anda telah mencipta. Inject, alih keluar kebergantungan . Perkara yang mudah. Penyongsangan Prinsip Kawalan
: Bergantung pada abstraksi, bukan pada perkara konkrit Apabila anda pergi untuk membeli pistol, anda harus mempunyai konsep abstrak pistol dalam fikiran anda Pemilik kedai senjata, imej abstrak pistol ini dalam fikiran anda sudah memadai. Dan anda dicipta oleh Tuhan apabila Tuhan ingin menguji anda sebagai seorang pemburu, lebih sukar untuk Tuhan mencipta pistol untuk anda, tetapi jika ada manual arahan senjata di dalam beg anda, ia akan menjadi lebih mudah akan membantu anda mendapatkan pistol dalam satu minit. Secara lebih kasar, jangan bergantung pada pistol tertentu, tetapi bergantung pada manual pistol Ini ialah penyongsangan prinsip kawalan. Jelas sekali, inilah yang kita lakukan dalam kehidupan sebenar. Bekas:
Ia adalah setara dengan kilang yang sangat berkuasa dalam kehidupan sebenar Tuhan (pengaturcara) bertanggungjawab untuk sentiasa menaik tarafnya, biasanya Dia boleh membantu anda dengan apa sahaja yang anda beritahu dia berikan kepada anda secara percuma. Kilang melakukan semua kerja kotor untuk anda, dan anda hanya bertanggungjawab untuk menikmati kehidupan. Kilang ini adalah tempat kesukaran untuk melaksanakan suntikan tanggungan.
Pemahaman lanjut,