single- vs. factory-Scopes
Singletons oder neue Instanzen auswählen
single- vs. factory-Scopes ist eine kostenlose Kotlin Multiplatform Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Multiplatform Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.
Zwei Möglichkeiten zum Erstellen
Koin bietet zwei zentrale Schlüsselwörter für Definitionen: single und factory. Sie unterscheiden sich darin, wie oft Koin das Objekt erstellt.
single bedeutet eine Instanz
Ein single wird einmal erstellt und überall gemeinsam verwendet. Jeder Teil Ihrer App, der danach fragt, erhält genau dasselbe Objekt. 🔁
single { UserRepository(get()) }factory bedeutet jedes Mal neu
Eine factory erstellt bei jeder Anfrage eine völlig neue Instanz. Nichts wird zwischengespeichert, daher verwenden zwei Aufrufer niemals dasselbe Objekt.
factory { ProfileUseCase(get()) }Wann Sie single wählen
Verwenden Sie single für Objekte, die einen Zustand halten oder aufwendig zu erstellen sind, etwa ein Repository, einen HTTP-Client oder einen Datenbanktreiber.
Wann Sie factory wählen
Verwenden Sie factory, wenn jeder Aufrufer sein eigenes kurzlebiges Objekt benötigt, etwa einen zustandslosen Use Case oder einen Mapper für einen einmaligen Einsatz.
single ist standardmäßig lazy
Ein single wird nicht bei seiner Deklaration erstellt. Koin erzeugt es erst, wenn etwas tatsächlich danach fragt, und behält es anschließend bei.
Eager-Erstellung erzwingen
Benötigen Sie bereits beim Start eine einzige fertige Instanz statt erst bei der ersten Verwendung? Fügen Sie createdAtStart hinzu, damit Koin sie erstellt, sobald der Container startet.
single(createdAtStart = true) { Analytics() }Sie in einem Graphen kombinieren
Ein einzelnes Repository kann von einem Factory-Mapper abhängen. Koin kombiniert die Scopes problemlos und erstellt die Factory innerhalb des langlebigen Single-Objekts jedes Mal neu.
Auf gemeinsam genutzten Zustand achten
Wenn Sie etwas versehentlich zu single machen, teilen sich Aufrufer möglicherweise einen Zustand, der privat bleiben sollte – eine klassische Quelle für schwer erkennbare Multiplattformfehler.
Ein praxisnahes Modul
Hier stehen ein langlebiges Repository und ein neues Use Case nebeneinander, jeweils mit einem Scope, der ihrer Verwendung entspricht.
module {
single { UserRepository(get()) }
factory { LoginUseCase(get()) }
}Standardmäßig single verwenden
Wenn Sie unsicher sind, beginnen Sie mit single. Die meisten appweiten Services benötigen nur eine Instanz. Sie können jederzeit zu factory wechseln, sobald Sie tatsächlich neue Objekte benötigen.
Kurzer Check
Wählen Sie das passende Scope-Verhalten.
Zusammenfassung
Sie haben gelernt, dass single eine Instanz gemeinsam nutzt, während factory jedes Mal eine neue erstellt. Verwenden Sie single für gemeinsam genutzte Services und factory für kurzlebige Hilfsobjekte. 👍
Lerne Kotlin mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „single- vs. factory-Scopes“ kostenlos?
Ja — der vollständige Text von „single- vs. factory-Scopes“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Multiplatform Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „single- vs. factory-Scopes“?
Singletons oder neue Instanzen auswählen Du übst Kotlin Multiplatform Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Multiplatform Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Multiplatform Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „single- vs. factory-Scopes“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Multiplatform Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Multiplatform Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Ein gemeinsames Koin-Modul deklarieren
- single- vs. factory-Scopes
- Koin auf Android und iOS starten
- In ViewModels und Repos injizieren