Мне нужно реализовать репортер статистики - объект, который печатает на экранную статистику. Эта информация обновляется 20 темами.Ищете совет по дизайну - Статистический репортер
Репортер должен быть самой темой, которая просыпается каждые 1 сек, читает информацию и печатает ее на экране.
Мой проект до сих пор: InfoReporterElement - один элемент информации. имеет две функции: PrintInfo и UpdateData. InfoReporterRow - один ряд на экране. Строка содержит вектор ReporterInfoElement. InfoReporterModule - модуль, состоящий из заголовка и вектора строк. InfoRporter - репортер, составленный из вектора модулей и заголовка. Репортер экспортирует функцию «PrintData», которая пересылает все модули \ rows \ basic и выводит данные на экран.
Я думаю, что мне должен быть объект, ответственный за получение обновлений из потоков и обновление основных информационных элементов.
Основная проблема заключается в том, как обновить информацию. Должен ли я использовать один мьютекс для объекта или использовать мьютекс на базовый элемент? Кроме того, какой объект должен быть потоком - сам репортер или тот, который получил обновления от потоков?
Рабочая нить не должна знать ничего о точном месте, где находится элемент. 20 нитей даже не знают, что данные представлены где угодно. Объекты, которые собирают данные, «строят» структуру экранного экрана, но отныне она заботится только об InfoElements. – amitlicht
ОК, я думаю, я понимаю, что вы имеете в виду. Как вы думаете, у меня должны быть объекты Builder, которые «помещают» элементы на экран? – amitlicht
Вам нужно преобразовать «Событие» в представление. Если событие состоит из обновления значения, то вы, вероятно, уже имеете отображение 'value' ->' position', так как вы уже показываете его. Это действительно сродни объекту «Builder», но я не уверен, что этот термин прав ...это скорее похоже на какой-то перевод ... но давайте не будем волноваться по имени, пока работа будет завершена! –