Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Susenin от Май 02, 2014, 16:40



Название: Посоветуйте паттерн для последовательности долгих вычислений.
Отправлено: Susenin от Май 02, 2014, 16:40
Здравствуйте!

Над данными нужно произвести последовательно несколько длительных преобразований (2-3 секунды). Пусть преобразования обозначаются - A, B, C, D, E...
Пользователь выбрал данные - преобразования начинают выполняться последовательно А->B->C...
Пользователь не дожидаясь окончания всей последовательности меняет данные - последовательность должна прекратить выполнение и начать снова с А.
У каждого преобразования есть параметры. Как только меняется параметр преобразования, например Е, последовательность должна прерваться и начать с Е с новым параметром.

Т.е. все это меняется на лету, пользователю доступны параметры всех преобразований, то С поменял, то А.

Подскажите, как это красиво реализовать?
Некрасиво уже сделал  :)

Если нужно больше конкретики, напишу.


Название: Re: Посоветуйте паттерн для последовательности долгих вычислений.
Отправлено: UltraPenguin от Май 08, 2014, 11:59
Красота - понятие субъективное чуть более, чем полностью. :)
Под Ваше описание неплохо подходит MVC, если говорить именно о паттернах.
А так (абстрагируясь от общих паттернов) вполне себе решение, как мне кажется, класс с интерфейсом + вычислительный класс.
Последний ловит сигналы об изменении данных от интерфейсного класса и перезапускает обработку.

UPD: в голову еще пришел паттерн Observer, но он не особо подходит, если преобразования идут последовательно.