BasicServiceLocator

Swift 的一个非常基础的服务定位器

安装

CocoaPods

pod 'BasicServiceLocator'

Swift Package Manager

一旦你设置好你的 Swift 包,添加 SwiftyTimber 作为依赖项就像把它添加到你的 Package.swift 的 dependencies 值一样简单。

dependencies: [
    .package(url: "https://github.com/iballan/BasicServiceLocator.git", .upToNextMajor(from: "0.0.3"))
]

用法

// Protocols
protocol ServiceA {}
protocol ServiceB {}

// Implementation
class ServiceAA: ServiceA {}
class ServiceBB: ServiceB {}

// Fake or Debug Implementation
class FakeServiceB: ServiceB{}

// Service Resolver and Container
let serviceLocator : ServiceLocator = BasicServiceLocator()

// Registering
serviceLocator.registerService(ServiceA.self, instance: ServiceAA())
serviceLocator.registerService(ServiceB.self) {
    #if DEBUG
        return FakeServiceB()
    #else
        return ServiceBB()
    #endif
}

// Fetching and using service
let serviceA = try? serviceLocator.getService(ServiceA.self)
let serviceB = try! serviceLocator.getService(ServiceB.self)