Further refactoring ideas
Momentan machen unsere Module zwei verschiedene Dinge:
- Lifecycle von Modulen (init, start, stop, deinit)
- Trennung von abstraktem Modul und Implementierung
Diese Sachen könnten getrennt werden in lifecycle-management und services. Lifecycle würde bleiben, wie es ist, aber zusätzlich könnte es ein Service-Framework geben.
Da können dann von Modulen Interfaces (nicht nur eine abstrakte Klasse) angeboten werden, die von beliebigen anderen Modulen implementiert werden können. Dazu könnte ein Dependency-Injection Framework (z.B. Google Dagger) verwendet werden.