Помогите с архитектурой приложения
Есть небольшое приложение в локальной сети для отслеживания игроков на разных серверах.
Текущая архитектура такая:
Есть два (в будущем больше) источников данных. Для каждого источника написан класс(адаптер) для удобного забора данных. Адаптеры содержат внутри себя таймеры, которые асинхронно обновляют данные с источников. Интервалы обновления(t1,t2) не одинаковые.
Второй частью приложения является список с игроками, за которыми ведется наблюдение. Каждый игрок(User1,User2...) это класс, где содержится инфа о нем. Через определенный интервал времени(t3) осуществляется обновления списка. Классы дергают адаптеры и забирают изменившиеся данные.Если известны ники для двух серверов, опрашиваются два адаптера. Возможна ситуация, когда известен только один ник на одном сервере, в этом случае другой адаптер не опрашивается.
Адаптеры написаны как синглтоны и ссылка на него хранится внутри классов игроков.
Сейчас получается потеря времени в случае когда данные уже обновлены, а время для перебора списка еще не подошло.
Да и вообще получился быдлокод.
Может у кого есть идеи по оптимальной архитектуре для такого приложения.
|