Вот например есть какойнибуть desktop application в котором пользователь может написать чтото ( неважно что вообще) и отсылать данные на api сервер чтобы они сохранились, но также пользователь может выбрать куда сохранять данные ( в БД или на google disk) , как бы вы организовали сохранение в разные БД или в google disk на стороне сервера? или какой лучший путь это сделать. Спасибо большое.
Есть паттерн репозиторий, некоторые его называют антипатерном, но все же. Ты можешь сделать несколько разных репозиториев, у которых будет один общий интерфейс, через который ты сможешь дернуть именно тот, который тебе нужен, и сохранить в правильное место.
Если смотреть высокоуровневую реализацию, то примерно так
Это да, вот вопрос там скорее не в прям детальной реализации )))) а, например у нас вместе с данными прилетает флаг от пользователя который нам будет сообщать в какую БД писать (обобщим разные диски и БД) и вот тут например мы можем сделать либо какойто middleware компонент который будет стоять перед builder.Services.AddScoped<IRepository, SomeDB>(); и передавать в него тот тип инстанса который выбрал пользователь и тогда мы можем передать в конструктор контролера просто интерфейс репозитория и использовать его в функциях для сохранения не знаю непосредственно какая реализация будет использоваться, либо мы просто в контроллере будет по флагу через абстрактную фабрику выбирать тип реализации репозитория
А бы зацепился за 2 вариант с разбором на уровне контроллера, а еще лучше сервиса
а ок пасиба большое ))
Обсуждают сегодня