ドメイン、データベース、サービス、アプリの各モジュールで構成されるマルチモジュール プロジェクトを開発しています。
依存関係は次のとおりです。
- ドメインには何もありません
- データベースはドメインに依存します
- サービスはデータベースとドメインに依存します
- app はドメインとサービスのみに依存する必要がありますが、データベースにも依存するようになりました。
アプリ、サービス、およびデータベースにはそれぞれ、モジュールが提供するすべてのもの (Koin) を含む modules.kt があります。データベースはリポジトリの実装を提供し、サービスはユースケースを提供し、アプリはビューモデルを提供します...
アプリがデータベース モジュールに依存しなければならない理由は、アプリ モジュールで Koin を起動するときに、データベース モジュールを参照できるようにするためです。
startKoin(this, listOf(
appModule,
databaseModule,
serviceModule
), logger = AndroidLogger())
そのためだけに、アプリ モジュールをデータベース モジュールに依存させたくありません。ただし、すべてのレイヤーに独自のモジュールファイルが必要です。Koin サービス モジュール ファイルがそのデータベース モジュール ファイルに依存していることを宣言する方法はありますか? そうすれば、私の Koin セットアップは私の gradle セットアップを反映します。