Services

一个用于在多平台中兼容实现类似于 JVM 平台中的 ServiceLoader 的简单实现。 Services 类似一个 全局性缓存, 会允许主动注册某些类型的对应构建器。

Functions

Link copied to clipboard
inline fun <T : Any> addProvider(crossinline providerCreator: () -> T)
fun <T : Any> addProvider(type: KClass<T>, providerCreator: () -> T)

添加一个用于获取 T 的函数。

Link copied to clipboard
inline fun <T : Any> clearProviders()

清理所有通过 addProvider 添加的某类型的 provider 构建器。

Link copied to clipboard
inline fun <T : Any> loadProviders(): Sequence<() -> T>
fun <T : Any> loadProviders(type: KClass<T>): Sequence<() -> T>

获取所有通过 addProvider 注册的 T 类型的 provider 实例。

Inherited functions

Link copied to clipboard
inline fun <T : Any> Services.addProvider(condition: Boolean, type: KClass<T>, crossinline providerCreator: () -> T)

当满足条件 condition 时,添加 providerCreator

Link copied to clipboard
inline fun <T : Any> Services.addProviderExceptJvm(type: KClass<T>, crossinline providerCreator: () -> T)

只有在 非Jvm 平台上添加 providerCreator