Я предлагаю вам изменить направление вашего подхода. Вы думаете, что у вас есть модель (например, словарь), которая является авторитетным источником, который обновляется на месте, который затем, в свою очередь, информирует подписанных наблюдателей об изменении.
Вместо этого я предлагаю вам перевернуть это: у вас есть набор наблюдаемых (ваши интернет-API, сенсоры и т. Д.), Которые являются вашим источником необработанных данных. На них может подписаться ваш «класс менеджера данных», задачей которого является проверка и фильтрация данных. Этот объект сам по себе является наблюдаемым и является авторитетным источником данных для вашей модели. Данные передаются напрямую подписанным наблюдателям (без посредников). Если вам необходимо сохранить эти данные, то система постоянства является лишь одним из возможных подписчиков среди множества других (GUI, CLI, интеграционный тест и т. Д.)