Com relação ao start do código (program.cs) você já definiu qual é o cargo do funcionário e qual a regra que ele irá utilizar, e entendo perfeitamente o motivo desse código "chumbado", já que o foco principal esta em mostrar como de fato aplicar o conceito do SRP.
No entanto estou imaginando isso no mundo real, quando normalmente não temos um cenário tão a favor como está no exemplo da aula. Enfim, minha dúvida é com relação a um passo antes de chegar no program.cs, deixe-me explicar!
Suponhamos que temos um formulário contendo as propriedades dos Funcionário (Cargo também), ao realizar uma requisição ao server, imagino que em algum momento eu teria que fazer uns IFs para poder identificar o cargo selecionado na tela.
E com relação a Regra, eu também teria que fazer uns trechos de código contendo alguns IFs. Não sei se ficou claro, por isso vou tentar ilustrar.
FORMULÁRIO CLIENT SIDE
Dados do Funcionario
- Salario Base <input type="text"/>
- Cargo <input type="checkbox"/>
SERVER SIDE
public GravarFuncionario(FuncionarioViewModel funcionario) {
if(funcionario.TipoCargo == "Dba")
{
funcionario.Cargo == new Dba(COMO EU VOU SABER QUAL É A REGRA);
}
if(funcionario.TipoCargo == "Desenvolvedor")
{
funcionario.Cargo == new Desenvolvedor(COMO EU VOU SABER QUAL É A REGRA);
} ... }
Professor espero que tenha ficado claro, minha dúvida esta focada em como eu elimino os IFs, no exemplo acima eu epenas tirei os IFs de um lugar e coloquei em outro. Muito obrigado Professor.