Pertanyaan yang diberi tag «dependency-injection»

Dependency Injection, adalah pola desain di mana dependensi (instance objek, properti) dari suatu komponen diatur melalui konstruktor, metode, atau bidang (properti). Ini adalah bentuk khusus dari inversi ketergantungan yang lebih umum.

2
Ketergantungan Injeksi vs Metode Statis
Saya melakukan diskusi yang menarik hari ini dengan pengembang lain tentang cara mendekati kelas dengan metode yang menerima string dan string output. Bayangkan sesuatu seperti yang berikut ini yang sepenuhnya dibuat untuk tujuan contoh public string GetStringPart(string input) { //Some input validation which is removed for clarity if(input.Length > 5) …

5
Apa manfaat injeksi ketergantungan dalam kasus di mana hampir setiap orang membutuhkan akses ke struktur data umum?
Ada banyak alasan mengapa global jahat di OOP. Jika jumlah atau ukuran objek yang perlu dibagi terlalu besar untuk secara efisien diteruskan dalam parameter fungsi, biasanya semua orang merekomendasikan Dependency Injection daripada objek global. Namun, dalam kasus di mana hampir semua orang perlu tahu tentang struktur data tertentu, mengapa Ketergantungan …

2
Masalah dengan memahami kata "jahitan"
Saya membaca "Ketergantungan Injeksi dalam. NET" oleh Mark Seemann (ini fantastis, dan harus dimiliki) dan penulis sering menggunakan kata "jahitan". Tetapi saya tidak mengerti apa artinya itu. Berikut ini contoh penggunaan kata ini: Bab 7 menjelaskan cara menyusun objek dalam berbagai kerangka kerja konkret seperti ASP.NET MVC, WPF, WCF, dan …

2
Model domain anemia dan injeksi layanan domain
The model domain anemia digambarkan sebagai anti-pola dalam domain desain didorong oleh Martin Fowler. Untuk memiliki logika bisnis pada model domain sering layanan domain digunakan. Tetapi menyuntikkan layanan domain ke dalam model domain dianggap berbahaya oleh Vaughn Vernon (lihat "Menerapkan Desain Berbasis Domain, Halaman 387). Menurut saya, pendapat itu kontradiktif, …



1
Dependency Injection / IoC praktik wadah saat menulis kerangka kerja
Saya telah menggunakan berbagai wadah IoC (Castle.Windsor, Autofac, MEF, dll) untuk. Net di sejumlah proyek. Saya menemukan mereka cenderung sering disalahgunakan dan mendorong sejumlah praktik buruk. Apakah ada praktik yang telah ditetapkan untuk penggunaan wadah IoC, khususnya ketika menyediakan platform / kerangka kerja? Tujuan saya sebagai penulis kerangka kerja adalah …

8
Apakah Injeksi Ketergantungan layak dilakukan di luar UnitTesting
Mengingat konstruktor yang tidak akan pernah, harus menggunakan implementasi berbeda dari beberapa objek yang diinisialisasi, apakah masih praktis untuk menggunakan DI? Bagaimanapun, kita mungkin masih ingin unit test. Kelas yang bersangkutan menginisialisasi beberapa kelas lain di konstruktornya dan kelas yang digunakannya cukup spesifik. Itu tidak akan pernah menggunakan implementasi lain. …

5
Kapan menggunakan antarmuka (pengujian unit, IOC?)
Saya curiga saya membuat kesalahan anak sekolah di sini, dan saya sedang mencari klarifikasi. Banyak kelas dalam solusi saya (C #) - berani saya katakan mayoritas - Saya akhirnya menulis antarmuka yang sesuai untuk. Misalnya antarmuka "ICalculator" dan kelas "Kalkulator" yang mengimplementasikannya, meskipun saya tidak akan pernah mungkin mengganti kalkulator …


3
Tolong jual saya di wadah IoC
Saya telah melihat beberapa merekomendasikan penggunaan wadah IoC dalam kode. Motivasinya sederhana. Ambil kode injeksi ketergantungan berikut: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> dep(new MockDependency); UnitUnderTest uut(dep); //Test here } Ke: class UnitUnderTest { …

5
C ++: Haruskah kelas memiliki atau mengamati dependensinya?
Katakanlah saya memiliki kelas Foobaryang menggunakan (tergantung pada) kelas Widget. Pada hari-hari baik, Widgetwolud dinyatakan sebagai bidang Foobar, atau mungkin sebagai penunjuk pintar jika perilaku polimorfik diperlukan, dan itu akan diinisialisasi dalam konstruktor: class Foobar { Widget widget; public: Foobar() : widget(blah blah blah) {} // or std::unique_ptr<Widget> widget; public: …

4
Haruskah ketergantungan suntikan dilakukan di ctor atau per metode?
Mempertimbangkan: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } melawan: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

3
Saya mendapatkan injeksi ketergantungan, tetapi bisakah seseorang membantu saya memahami perlunya wadah IoC?
Saya minta maaf jika ini sepertinya pengulangan pertanyaan yang lain, tetapi setiap kali saya menemukan artikel mengenai topik tersebut, sebagian besar hanya berbicara tentang apa itu DI. Jadi, saya mendapatkan DI, tetapi saya mencoba memahami perlunya wadah IoC, yang tampaknya semua orang masuki. Apakah titik wadah IoC benar-benar hanya untuk …

5
Bisakah saya menggunakan Injeksi Ketergantungan tanpa melanggar Enkapsulasi?
Inilah Solusi dan proyek saya: BookStore (solusi) BookStore.Coupler (proyek) Bootstrapper.cs BookStore.Domain (proyek) BuatBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (proyek) BuatBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (proyek) Global.asax BookStore.BatchProcesses (proyek) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), typeof(CreateBookCommandHandler).Assembly); …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.