Ответ
Нет, Context не должен находиться в UseCase. UseCase — это слой бизнес-логики, который должен быть независим от Android-специфичных компонентов (включая Context). Это нарушает принципы чистой архитектуры и усложняет тестирование.
Если нужен доступ к ресурсам или системным сервисам, их следует передавать через интерфейсы (например, ResourceProvider или SystemServiceWrapper), реализованные в слое данных или presentation.
Пример:
class GetUserUseCase(
private val userRepository: UserRepository,
private val resourceProvider: ResourceProvider // Интерфейс, а не Context
) {
suspend fun execute(): User {
return userRepository.getUser()
}
}