Получать данные с сервера при каждом обновлении экрана - это слишком расточительно, данные все равно придется кешировать.
Хранить данные внутри или снаружи модели зависит от того, нужны ли эти данные без модели. Если возможны режимы работы программы без отображения данных (или вообще без GUI), то наверное лучше иметь внешнее хранилище из которого модель берет данные.
Вариантов много, добавьте конкретики.
есть данные которые отображаются в двух вьюхах. В них есть общая часть. +могут всплывать диалоги, которые тоже отображают какие-то данные. И да, хотелось бы не завязываться жёстко на гуи.
Значит внешенее хранилище. Хорошо. Остаётся определиться как модель будет узнавать о его изменении. Вижу два варианта: 1) viewModel имеет указатель на хранилище, то в свою очередь сигнализирует о любых изменениях. Внутри моделей ловим сигналы и обрабатываем. 2)хранилище просто структура данных. Тот кто его изменяет должен сообщить это моделям.
1?