跳至主要内容

擴充功能管理器 (Extension Manager)

以下是有關於 KoinExtension 管理器的簡要說明,其專用於在 Koin 框架內新增功能。

定義擴充功能(Extension)

Koin 擴充功能由繼承自 KoinExtension 介面的類別組成:

interface KoinExtension {

var koin : Koin

fun onClose()
}

此介面可確保您獲得傳遞的 Koin 實例,並且在 Koin 關閉時會呼叫擴充功能。

啟動擴充功能(Extension)

要啟動擴充功能,只需擴充系統的正確位置,並使用 Koin.extensionManager 註冊它。

以下是我們如何定義 coroutinesEngine 擴充功能:

fun KoinApplication.coroutinesEngine() {
with(koin.extensionManager) {
if (getExtensionOrNull<KoinCoroutinesEngine>(EXTENSION_NAME) == null) {
registerExtension(EXTENSION_NAME, KoinCoroutinesEngine())
}
}
}

以下是如何呼叫 coroutinesEngine 擴充功能:

val Koin.coroutinesEngine: KoinCoroutinesEngine get() = extensionManager.getExtension(EXTENSION_NAME)