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 = try! resolver.resolve(Int.self)
  let doubleValue: Double = try! resolver.resolve()

Neden ServiceLocator kalıbı?

  • Sınıflar / nesneler arasında Loose coupling,

  • Daha iyi test edilebilirlik,

  • Genişletilebilirlik sağlar. Yeni örnekler kolayca kaydedilebilir ve proje çok değişmeden entegre edilebilir.

Neden XServiceLocator?

  • Kütüphaneyi entegre edip, hızlıca kullanmaya başlayabilirsiniz.

  • Resolvers dizisini destekler. Bir Resolution tipi için resolvers kombinasyonu kullanılabilir.

  • Topluluğa ve çözümlerinin kalitesine gerçekten önem veren bir grup geliştirici tarafından geliştirilmiştir.

  • Her şey yalnızca Swift kullanılarak oluşturulmuştur. Eski Objective-C kodu yoktur.

Projenize entegre etmek ve daha detaylı bilgi almak için :

https://github.com/quickbirdstudios/XServiceLocator

https://quickbirdstudios.com/blog/swift-dependency-injection-service-locators/

https://github.com/Carthage/Carthage#adding-frameworks-to-an-application

https://developer.apple.com/videos/play/wwdc2019/408/

https://quickbirdstudios.com/


#apple #ios #xcode #XServiceLocator




0 yorum

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın