Потоки работают, передавая данные от производителя к потребителю, когда они становятся доступными (по крайней мере, в Java, не уверен, как потоки реализованы в дротике).Таким образом, если вы используете поток и подписываетесь на него, вы как бы получаете push-наблюдателя из коробки.
Я не вижу никакой выгоды от добавления другого наблюдателя поверх этого (по крайней мере, в Java).
Обратите внимание, что потоки имеют тенденцию быть больше от functional paradigm
, чем от object oriented
.Я думаю, что ваше первое решение - это звук с точки зрения разработки программного обеспечения.