Sergey Panov
Есть минус создания viewModel не через фабрику. К примеру мы в onCreate методе создаём viewModel потом устанавливаем в неё какой-нибудь объект, состояние которого нужно хранить, после поворота экрана вызывается опять метод onCreate, где мы перезаписываем состояние существующего объекта в viewModel.
Если передавать объект в конструктор, то ViewModelProvider вернёт существующую viewModel с сохранённым состоянием объекта.
Ещё раз спасибо за пояснения. Я пробовал разные варианты и single activity app и с множеством активити. Во всех свой viewmodel, созданный стандартной фабрикой, без репозитория в параметре, а с репозиторием объектом (агрегация/композиция кажется называется) и не было пересоздания ни vm ни репозитория при смене конфигурации. 🤯