opa, bom BugBug?
Então, esse jeito que você escreveu é o jeito errado que eu falei de como resolver o problema.
Mas porque errado né?
Seguinte, imagina agora que eu vou dar suporte a 30 bancos de dados diferentes... você vai deixar no meio do código um switch case de 30 opções ou vai extrair isso para uma classe (não estamos falando de programação funcional nesse exemplo hein) diferente?
Se você extrair pra uma classe diferente, provavelmente você vai usar uma factory.
Lembrando que o seu exemplo nao segue o princípio Open Closed porque a cada novo jeito de salvar vai precisar mudar esse código... o que vai pioriando ele a cada vez que você muda.
Mas, sim, TUDO pode ser resolvido só com loop e if/else a questão e se voce wuer estrurar o código ou não...
Outra coisa, se os padrões de programação orientada a objeto nao fazem sentido na programação funcional... bom, é porque eles são padrões de orientação a objeto. Em programação funcional os padrões são outros. Nessa caso aí você pode fazer uma high order function e só receber a função que salva de acordo com a necessidade,
valeu!