XServiceLocator: Yeni bir Swift Dependency Injection Kütüphanesi

XServiceLocator nesnelere, ihtiyaç duydukları bağımlılıkları dinamik olarak sağlamak için oluşturulmuş bir Swift kütüphanesidir. Bu kütüphane, Service Locator modeline dayanmaktadır. Buradaki fikir, nesnelerin bağımlılıklarını belirli bir yerden almasıdır. XServiceLocator, iOS uygulamanızda herhangi bir ekstra işleme ihtiyaç duymadan seamless dependency injection kullanmanıza olanak tanır.


Görsel Referansı


Components

  • Container : Kayıtlı türlerin instance' larının nasıl oluşturulacağına ilişkin yapılandırmayı depolar.

  • Resolver : Container yapılandırmasını kullanarak bir sınıfın instance' ını oluşturur.

  • ServiceFactory : Genel türden örnekler oluşturmak için genel bir factory çözümüdür.


Kullanımı


Container ile register methodundan herhangi birini kullanarak tüm türleri kaydedin.

let container = Container()
            .register(Int.self, instance: 10)
            .register(Double.self) { _ in 20 }

Type' ın bir instance' ına ihtiyaç duyduğunuz her yerde, resolver'ın çözümleme yönteminden herhangi birini kullanarak erişebilirsiniz. Öncelikle Container' dan Resolver alalım ve sonra bağımlılıkları çözmek için Resolver kullanalım.


  let resolver = container.resolver

  let intValue =