Вот и вопрос, зачем шарить вьюмодель, если можно просто модель? Просто классов меньше?
Я вообще не понимаю, зачем шарить что-либо? Это же увеличивает связность кода и ухудшает композируемость. Почему нельзя в дочерние фрагменты передать какой-нибудь Flow или Observable данных? И пусть предок уже решает, что кому и когда.
Я вообще не понимаю, зачем шарить что-либо? Это же увеличивает связность кода и ухудшает композируемость. Почему нельзя в дочерние фрагменты передать какой-нибудь Flow или Observable данных? И пусть предок уже решает, что кому и когда.
Я об этом и говорю, конечно. Но это тоже будет шаринг)
Я об этом и говорю, конечно. Но это тоже будет шаринг)
Так нет же. Дочерние фрагменты можно вообще положить в отдельные модули. Пусть они зависят каждый от своих данных. Ну или от общих из общего модуля. И принимать их поток через конструктор. Это ещё и безопасность при сборке даёт. Т.к. нет неявных контрактов.
Всё правильно. Но почему это не шаринг? Клиент знает только о входящих данных, поставщик этих данных выкидывает их наружу. Канал данных пошарен - вот я и говорю шаринг)
Всё правильно. Но почему это не шаринг? Клиент знает только о входящих данных, поставщик этих данных выкидывает их наружу. Канал данных пошарен - вот я и говорю шаринг)
Аа ну шаринг между предком и конкретным дочерним фрагментом. Но не между всеми дочерними. Это важно
Должен быть объект, который заинжектится в один фрагмент как выход а в другой как вход
Это могут быть разные классы. А предок может делать преобразования. Да бойлерплейт, но зато нет связности и можно переиспользовать. Также удовлетворение SRP, если каждому фрагменту нужна только часть общих данных.
Но если прям хочется пошарить и класс, ну пусть будет так. Но зависеть фрагменты должны от того, что им реально надо. Нужен поток данных, передать поток данных. Нужно выдать данные, передать Consumer.
Но если прям хочется пошарить и класс, ну пусть будет так. Но зависеть фрагменты должны от того, что им реально надо. Нужен поток данных, передать поток данных. Нужно выдать данные, передать Consumer.
А у Вас есть какой-то пример, что бы детальней разобраться. Смысл понятен, хотелось бы посмотреть на реализацию.