Şimdi kontrolün (IoC) bir konteynırını mevcut bir uygulamaya entegre etmekle karşı karşıyayım ve bunun, kuplajı azaltma ve böylece test edilebilirliği arttırma nihai hedefiyle en kolay şekilde nasıl gerçekleştirilebileceğine dair bazı öneriler arıyorum. Genellikle sınıfların çoğunu tanrı nesnesi olarak sınıflandırmasam da , her birinin statik, singleton ve arayüz eksikliği yoluyla çok fazla sorumluluğu ve gizli bağımlılığı vardır.
Karşılaşılması gereken bazı zorluklardan bazıları:
- Bağımlılık enjeksiyonu nadiren kullanılır
- Statik yöntemler bol - hem fabrika hem de yardımcı yöntemler olarak
- Singletonlar oldukça yaygın
- Arabirimler kullanıldıklarında çok parçalı değildir
- Nesneler genellikle temel sınıflar aracılığıyla gereksiz bağımlılıkları çeker
Amacımız, bir dahaki sefere belirli bir alanda değişiklik yapmamız gerektiğinde, gerçekte var olan ancak singletonlar ve statik gibi küresellerin arkasında gizlenen bağımlılıkları ortaya çıkarmaya çalışmamızdır.
Sanırım IoC konteynerini bağımlılık enjeksiyonunun uygulanmasına ikincil hale getiriyor, ancak bu bağımlılıkları ortadan kaldırmamıza yardımcı olacak izlenebilecek veya dikkate alınabilecek bir dizi uygulama ve öneri olmasını bekliyorum.