Não só mostra um exemplo real da utilização das boas práticas, como também prova que abstrações podem salvar sua vida , afinal, você não estava usando o Ninject diretamente.
Muito bom post, porém tenho uma dúvida… na verdade pitaco. (Estou com um pouco de sono por aqui, me corrija se estiver falando besteira )
No caso apresentado, seu preço é formado de acordo com a Loja em Precificador. Onde é multiplicado o itemPedido pelo fatorAjuste.
Não seria uma solução encapsular esse fator de ajuste, passando o Precificador para classe abstrata e adotando para a Loja o conhecimento sobre o Fator de Ajuste. Variando de acordo com a Loja.
Teríamos então uma Facade, onde no geradorPreco receberia uma instância da classe abstrata Precificador ao contrário de trabalhar com a interface.
“Não seria uma solução encapsular esse fator de ajuste, passando o Precificador para classe abstrata e adotando para a Loja o conhecimento sobre o Fator de Ajuste. Variando de acordo com a Loja.”
Qual classe abstrata?
Se puder, coloca mais código ou leva pro DNA pra gente discutir mais.
Usei o Unity há algum tempo atrás em um Pet Project, mas não cheguei a precisar de nenhuma feature avançada na época. Desta vez, nem conseiderei o Unity.
Oi Tucaz,
Muito show o post! Parabéns!
Não só mostra um exemplo real da utilização das boas práticas, como também prova que abstrações podem salvar sua vida
, afinal, você não estava usando o Ninject diretamente.
Abraços!
Olá Tucaz,
Muito bom post, porém tenho uma dúvida… na verdade pitaco. (Estou com um pouco de sono por aqui, me corrija se estiver falando besteira
)
No caso apresentado, seu preço é formado de acordo com a Loja em Precificador. Onde é multiplicado o itemPedido pelo fatorAjuste.
Não seria uma solução encapsular esse fator de ajuste, passando o Precificador para classe abstrata e adotando para a Loja o conhecimento sobre o Fator de Ajuste. Variando de acordo com a Loja.
Teríamos então uma Facade, onde no geradorPreco receberia uma instância da classe abstrata Precificador ao contrário de trabalhar com a interface.
Hmmm…acho que não entendi. Exemplo com código?
class abstract Precificador
{
protect abstract decimal PegarFatorAjuste();
public decimal CalcularPreco(ItemPedido item)
{
return item.Preco * PegarFatorAjuste;
}
}
Ainda não entendi
“Não seria uma solução encapsular esse fator de ajuste, passando o Precificador para classe abstrata e adotando para a Loja o conhecimento sobre o Fator de Ajuste. Variando de acordo com a Loja.”
Qual classe abstrata?
Se puder, coloca mais código ou leva pro DNA pra gente discutir mais.
Ótimo Post,
Mas tentou usar o Unity Application Block pra IoC?
Usei o Unity há algum tempo atrás em um Pet Project, mas não cheguei a precisar de nenhuma feature avançada na época. Desta vez, nem conseiderei o Unity.