Комментарии 3
(del, ошибся)
Fluent-паттерн действительно очень красивый. Его удобно использовать для конфигурации: как в ASP.NET Core или паттерн test builder. Также очень удобно составлять запросы в LINQ, например используя IQueryable.
Но нужно обратить внимание, что в том же LINQ запрос не выполнится, пока не будет вызван например ToListAsync - который и отдаст Task. В приведенном примере, если переделать метод BuilderFtpService.Download
на асинхронную модель, нужно будет реализовывать дополнительно интерфейс вроде IDownloadableBuilderFtpService
, который позволит сконфигурировать скачивание и дельнейшее сохранение - но позволит запустить эту задачу только при вызове последнего метода, который уже отдаст Task в запущенном состоянии.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Организация кода для работы с ftp средствами Fluent interface