Q>На стороне бизнес логики данные формируются в некотором абстрактном виде, не заточенные под отображение в UI (т.е. без цветов, шрифтов и т.п.).
Q>Далее данные передаются в слой UI через callback или отдельным вызовом со стороны UI.
Q>Логика UI уже решает, где и как эти данные отобразить, в т.ч. каким цветом и т.д.
Это понятно.
Q>Список или не список, эти данные ничем не отличаются от других данных, которыми обмениваются слои программы.
Если рассуждать вообще, то я согласен, что для общей архитектуры это неважно.
Но мы ведь должны перейти уже к конкретному решению.
Возвращаемые данные из бизнес-логики всегда имеют какой-то конкретный тип.
И тут нам надо решить: какие конкретно данные будет возвращать бизнес-логика для данного конкретного случая:
1) либо это будет просто что-то типа структуры с несколькми полями с информацией об одном конкретном выполненном действии,
2) либо это будет список (массив и т.д.) действий
Вы как считаете, какой вариант для поставленной задачи более правильный?
Выше вы писали:
В этом случае прогресс это не % выполнения, а список сделанного.
В простейшем случае — лог, список строк.
Какой механизм (архитектуру) вы имели ввиду? В каком слое будет формироваться этот прогресс? В бизнес-логике?
В каком виде это прогресс передаваться в UI?