Bağımlıklık uygulamalarda pekte istenen bir durum değildir. Yazdığınız bir uygulama parçasının bir başkasına bağımlı olması size geliştirmede yüksek maliyet doğuracaktır.
Bağımlılık Enjesiyonu yani Dependency Injection, “gevçek bağlı” uygulamalar oluşturma yaklaşımıdır. Zaman içerisinde değişen ihtiyaç ve isteklere en az maliyetle (zaman=para) cevap verebilecek uygulamalar geliştirmemize olanak sunar.
Yazılım tasarımında kodların kapsüller (encapsulation) halinde bir birlerinden bağımsız hareket edebilmesi sağlanır. Bir kapsülün diğerinin ne iş yaptığından haberi yoktur. Bunu sağlamak için izlenen yöntemler başlıca, Abstraction, Interface yapısı kullanılabilir. Modellerinizin zaman içerisinde değişeceğini düşünüyorsanız modellerimizi “concrete” olarak tanımlamak yerine “interface” olarak bir tanım yapıp, değişiklik olan kısımları bu interface’den türetierek implemantasyon yaparız.
Kendi yapınızla bir bağımlılık enjesiyonu oluşturabileceğiniz gibi, bu amaç için üretilmiş kütüphaneleride kullanabilirsiniz.
Örnek vermek gerekirse:
- Unity .NET
- Simple Injector .NET
- Structre Map .NET
- Ninject .NET
- Castle Windsor .NET
- Di-Ninja JavaScript, NodeJS
- Auryn PHP
- Phalcon PHP
Bağımlılık Ekjeksiyonu genel olarak karşımıza DI kısa adı ile çıkar. Genel olarak MVC yaklaşımını uygulayan frameworkler içerisinde bağımlılık enjeksiyonu mimarisi kullanılır.
“Bağımlılık Enjeksiyonu” için bir yanıt
[…] Bağımlılık Enjeksiyonu […]