сервером, как мне во все эти репозитории прокинуть токен, так еще эти репозитории прокинуть в нужные вьюмодели?
вьюмодели можно вызвать в любой части приложения, и вернется один и тот же инстанс, но например DataStore должен быть один
Во вью модели new MyRepository() (или с Ди фреймворком @Inject и внедряешь какой требуется, тип) А токен берет с FS, откуда же ещё
у меня есть класс который работает и настраивает ktor, инстанс этого класса нужно прокинуть во все репозитории которые общаются с сервером
Тупое простое решение: 1. Сделать репозитории синглтонами и ьбратиться через гетИнстанс() 2. Выставить токены сеттерами. Или хранить токен в глобальной переменной (классе - контейнере) где они его заберут. Ну или использовать DI
было бы удобно если бы я мог создать класс Singleton и наследоваться от него, но это видимо не реализуемо
Ты хочешь очень странного
А почему бы не создать интерфейс
Если ты хочешь избавиться от дублирования кода, то тут полиморфизм и дженерики тебе в помощь. Далее можешь в родительском интерфейсе своих репозиториев завести функцию типа interface Repo { fun <T: Repo> getInstance() : T } и далее реализовать эту функцию в каждом из наследников. или что-то в этом роде. Или же действительно юзай Dagger (Hilt) и будет тебе счастье.
Обсуждают сегодня