İçeriğe geç

Dependency Injection Nedir

Yazılım geliştirme süreçleri içinde önemli bir kısımdır. Projeye başlarken yaptığımız ihtiyaç analizi, bazen projenin ilerleyen zamanları için yeterli olmayabiliyor. Bu sebeple oluşabilecek yeni talepleri önceden göz önünde tutarak projeyi esnek hazırlamak yararımıza olacaktır.

Yazılım içerisindeki oluşumların bir birlerine gevşek bağlı(loosely coupled) olması, sonradan oluşabilecek talepler için minimum efor harcamamıza zemin hazırlayacaktır. Basit bir senaryo düşünelim.

Bir müşterinizin an itibariyle elinde xml veri kaynağı olduğunu ve ilk etapta bunu kullanmak istediğini, sonrasında ise bu verileri  bir sql veritabanı içinde saklamak istediğini düşünelim. Bunun için veriye erişim yaptığımız sınıflarımızın diğer yapılardan yalıtılmış olmasını sağlamamız gerekir.

DataType

Görüldüğü gibi bir interface hazırladık ve bunu implemente eden sınıflarımızı oluşturduk. Şimdi bir Process sınıfımızın olduğunu düşünelim.

    class Process
    {
        private IGetData Type = null;
        public Process(IGetData _GetData)
        {
            Type = _GetData;
        }

        public void GetAllData()
        {
            Type.CategoryGetData();
            Type.ProductGetData();
        }
    }

Burada görüldüğü üzere Process sınıfının veriye erişim yapılan yapı ile sıkı sıkıya bir bağlılığı bulunmuyor. Şöyle ki: Burada IGetData arayüzünü implemente eden sayısız nesne ekleyebiliriz veya bu nesneler üzerinde değişiklik yapabiliriz. Fakat bu durum Process sınıfını hiç ilgilendirmiyor.
Örnek projeyi indirerek inceleyebilirsiniz.

Tarih:Object Oriented Programing

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.