> Dependency Injection worth it **outside** of UnitTesting?
> Are we justified in avoiding trying to program to an interface?
Bu soruya verilen birçok cevap, eğer birim test yapmak istemiyorsanız, YAGNI olarak "buna ihtiyacınız olabilir .." olarak tartışılabilir.
Birim testlerin yanında hangi nedenlerin bir arayüze programlanması gerektiğini soruyorsanız
Evet , eğer kontrolün tersine çevrilmesi gerekiyorsa, UnitTesting dışında buna değer Bağımlılık Enjeksiyonu . Örneğin, bir modül uygulamasının katmanında erişilemeyen başka bir modül gerekiyorsa.
Örnek: gui
=> businesslayer
=> driver
=> modüllerine sahipseniz common
.
Bu senaryoda businesslayer
kullanabilir driver
ancak driver
kullanamazsınız businesslayer
.
Daha yüksek driver
seviyeli bir işlevsellik gerekiyorsa businesslayer
, common
katmandaki bir arabirimi uygulayan bu işlevselliği uygulayabilirsiniz .
driver
sadece common
katmandaki arayüzü bilmelidir .