Web üzerindeki birçok makalede, Tersine Çevirme ve Bağımlılık Ters Çevirme İlkesi terimleri karışık ve eş anlamlı olarak kullanılmıştır ("DI-Kapsayıcılar" ve "IoC-Kapsayıcılar" olarak adlandırılan araçlarla daha fazla karışıklık vardır). Bir Wikipedia makalesi , IoC'nin DI ile aynı olmadığını açıklamak için iyi bir iş çıkarıyor:
denetimin ters çevrilmesi (IoC), bir bilgisayar programının özel olarak yazılan bölümlerinin genel, yeniden kullanılabilir bir kitaplıktan denetim akışını aldığı bir tasarımı tanımlar.
Bu yüzden DIP, modüllerinizin somut uygulamalardan ziyade soyutlamalara bağımlı olmasıyla ilgilidir.
IoC, ayrı bir modüle program akışınız üzerinde kontrol vermekle ilgilidir. Ve bu modülün yapabileceği şeylerden biri, çalışma zamanında bağımlılıkları çözmek.
Bu fark adil görünüyor, ancak hiç kimsenin IoC ilkesinin bağımlılık çözme dışında başka uygulamalarından bahsettiğini görmedim. Wikipedia tanımı oldukça geniştir ve yapılandırmasına ve bazı dahili mantığına bağlı olarak özel kodunuza çağrı yapabilen bir modülle çok daha fazlasını yapabileceğiniz anlaşılıyor.
İşte, henüz tam olarak anlayamadığım bazı sorular:
- IoC ve DIP arasındaki gerçek ilişki nedir? IoC her zaman DIP'nin uygulanmasının bir aracı mıdır?
- Bağımlılık çözme araçlarına neden hem DI- hem de IoC kapları deniyor? Bu, DI ve IoC'nin aynı şey olduğu anlamına gelir.
Not : Bu soru DI ve IoC arasındaki fark nedir? Sorusunun bir kopyası değildir , çünkü ikincisi Bağımlılık Tersini değil, Bağımlılık Enjeksiyonunu sormaktadır.