S
Size: a a a
S
P
S
P
Потом интерактор (или что-то на более высоком уровне) инжектит в себя эти репозитории и работает с ними. Но модель одна. А модели для работы с данными скрыты в имплементациях.
// Где-то на уровне бизнес-логики:
interface MyNetworkRepo {
suspend fun requestMyDataFromNetwork(): MyData
}
interface MyDbRepo {
suspend fun requestMyDataFromDb(): MyData
}
// Где-то на уровне data, может даже в другом модуле:
class MyNetworkRepoImpl: MyNetworkRepo {
suspend fun requestMyDataFromNetwork(): MyData {
// request MyDataNetwork model
// convert MyDataNetwork to MyData
}
}
class MyDbRepoImpl: MyDbRepo {
suspend fun requestMyDataFromDb(): MyData {
// request MyDataDb model
// convert MyDataDb to MyData
}
}
HR
M
М
IN
М
АЕ
М
АЕ
М
IN
IN
АЕ
М
АЕ