const categorias = {
bronze: {
maxParcelas: 2,
},
prata: {
desconto: 0.95,
maxParcelas: 4,
},
ouro: {
desconto: 0.98,
maxParcelas: 20,
},
diamante: {
desconto: 0.10,
},
}
function calcularPreco(categoria, valor) {
return valor * (categorias[categoria]?.desconto || 1);
}
function calcularParcelas(categoria) {
return categorias[categoria]?.maxParcelas || 10;
}
Pronto, agora fica fácil adicionar categorias e funções.
Sim, esta é uma das várias implementações possíveis de strategy, com todas as vantagens que este pattern traz.
O problema é que vc ainda está preso à ideia de que DP é só sobre orientação a objetos, e que só dá pra fazer com classes. Não é, e novamente deixo o link para o artigo que mostra como implementar em C (sem usar classes e orientação a objeto, portanto).
E segue também os demais links que indiquei em outro comentário:
- Non-OOP Design Patterns?
- Is Design Pattern only for Object-Oriented design?
- How is OOP and Design Patterns related?
O que acontece é que o livro do GoF se tornou tão popular que fez com que muita gente achasse que DP e OO são a mesma coisa, ou que só dá pra fazer o primeiro usando o segundo.