Как стать автором
Обновить

Комментарии 3

Fluent-паттерн действительно очень красивый. Его удобно использовать для конфигурации: как в ASP.NET Core или паттерн test builder. Также очень удобно составлять запросы в LINQ, например используя IQueryable.

Но нужно обратить внимание, что в том же LINQ запрос не выполнится, пока не будет вызван например ToListAsync - который и отдаст Task. В приведенном примере, если переделать метод BuilderFtpService.Download на асинхронную модель, нужно будет реализовывать дополнительно интерфейс вроде IDownloadableBuilderFtpService, который позволит сконфигурировать скачивание и дельнейшее сохранение - но позволит запустить эту задачу только при вызове последнего метода, который уже отдаст Task в запущенном состоянии.

Да, совершенно верно. Точнее добавить интерфейсы для асинхронных методов ITransferServiceReadAsync и ITransferServiceReadAsync, где будут возвращаться Task, вместо void, а в ITransferServiceAction, добавить асинхронные методы, которые возвращали бы "асинхронные интерфейсы".

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории