Единственный правильный ответ - "это зависит".
Observable
хорошо, когда вам все равно, что меняется в объекте; вы только хотите знать, что что-то изменилось и обновить, например, кеш свойств объекта. Его интерфейс слишком грубый, но он может сэкономить время, если вам просто необходима такая вещь.
С другой стороны, как заметил AlexR, вы также не знаете, какой тип аргумента передается раньше (это может быть даже значение null
!). Это усложняет работу с ним. Правильный класс слушателя может иметь более богатый API, но за счет добавления интерфейса Listener и класса событий в ваш проект.