Re: Clean Architecture. Отображение в GUI процесса выполнения длительной операци
От: Qulac Россия  
Дата: 16.09.24 11:36
Оценка:
Здравствуйте, zelenprog, Вы писали:

Z>Здравствуйте!


Z>Стараюсь написать программу с "хорошей" архитектурой.

Z>Читал про Чистую архитектуру:
Z>https://habr.com/ru/articles/499078/

Z>Как я понял, в соответствии с Чистой архитектурой, выходные данные ResponseModel бизнес-операции (UseCase Interactor) после ее завершения "возвращаются" в вызывающий слой через интерфейс OutputPort.

Z>Интерфейс OutputPort реализуется в вызывающем слое как объект Presenter.
Z>Но ведь OutputPort "возвращается" только при завершении бизнес-операции, через OutputPort возвращаются результаты выполнения.

Z>А как сделать, чтобы происходило изменение пользовательского интерфейса именно в процессе выполнения длительной бизнес-операции?


Z>Например.

Z>Бизнес-операция — это обработка вложенных файлов и папок. Обработка каждой папки достаточно длительная.
Z>Нужно, чтобы при выполнении этой операции в окне отображалась таблица с колонками.
Z>При начале обработки новой папки\подпапки в таблице должна появляться новая строка и в первой колонке "Имя папки" таблицы отображается имя папки.
Z>По ходу обработки папки (при обработке очередного файла в этой папки) во второй колоке "Файл" должна появиться строка "обрабатывается файл ххххх". После обработки всех файлов в колонке таблицы "Результат" должен появиться результат обработки папки.

Z>В общем-то по смыслу ничего сложного.

Z>Но как это реализовать, придерживаясь принципов Clean Architecture?
Z>Как вызывающий слой должен вызвать UseCaseInteractor?
Z>Что должна сделать процедура бизнес-операции, чтобы "сработали" все эти OutputPort, Presenter и т.д., и чтобы в итоге пользователь видел процесс заполнения таблицы?

Z>Объясните, пожалуйста.

Z>Если можно — покажите какой-нибудь подходящий пример кода.

Почитал бы книжку: Чистая архитектура она того стоит и кстати, там есть про то, что перебарщивать в архитектуре не стоит без явной в этом необходимости.
Программа – это мысли спрессованные в код
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.