В этом вопросе есть что взять, но я бы сказал, что нужно выбрать вариант 2.
Я не очень разбираюсь в разработке реактивных сред, но, глядя на ваши варианты, мыможет в значительной степени исключить первый вариант, поскольку он слишком ограничен в использовании, что оставляет варианты 2 и 3.
Вариант 3 допускает большую степень детализации, как вы упоминаете, но, на мой взгляд, такая степень детализации вызывает многобольше раздувания для обычных случаев использования - например, меня интересует вся измененная модель, а с .map
и .filter
я могу легко уменьшить поток в опции 2 до того, что было бы гранулированным вариантом, когда это было необходимо легко,Мне кажется, что чаще всего дело в том, чтобы смотреть на всю наблюдаемую модель, а не на ее часть.
В настоящее время также кажется, что вариант 2 просто преобладает в дизайне Rxи подобные структуры, и я бы сказал, что это просто опытный способ сделать это.
Надеюсь, это поможет, похоже, это больше подходит для дискуссионной доски, чем для простого ответа.