Flutter Clean Architecture (3)
Dependency Injection
Bu konu kolay olduğu kadar anlaşılması zor olabiliyor, basit düşünmeniz anlamanız kolaylaştıracaktır.
Dependency injection yönteminin flutter da kullanımına örnek göstermek için yazıyorum açıklamaları sade tutacağım için daha detaylı yazılara incelemeniz için link vereceğim.
Buraya tıklayarak ilgili yazının tamamını okumanızı tavsiye ederim. Özetleyecek olursak Dependency injection SOLID prensiplerinden Dependency Inversion prensibinin uygulama yöntemlerinden biri diyebiliriz.
Neden kullanıyoruz
Koddaki bağımlılıkların yönetilmesi kodun test edilebilirliğine kolaylaştırıyor. Okunabilirliğini artırmanın yanı sıra kod tekrarından bizi koruyor.
Nasıl uygularız
Constructor Injection : en sık kullanılan yöntemdir
Yukarıda kodda gözüktüğü gibi bağımlı olduğu sınıfı Constructor dan enjekte edilmiş.
Setter Injection :Bağımlılığı fonksiyon üzerinden enjekte edersek Setter Injection oluyor.
Interface Injection: Bağımlılığı interface tarafından enjekte edilmesi istenirse Interface Injection oluyor.
Bu örnek güzel olmasada konuyu açıklamak için ideal olduğunu düşünüyorum. CrudRepository sınıfını kullanan sınıfların db connection’ı bağımlılığını kullanması gerekiyor.
Nasıl test edebiliriz
Aşağıda flutterda yazılmış test örneğini görebilirsiniz.
Sonraki yazımızda projemizde Provider, get_it kullanacağız.